培训第十二堂

函数定义的一般形式如下:

 类型说明符 函数名([形式参数列表])

{

 函数体

 }

函数一般包括用户自定义的函数和系统提供的标准函数,对于用户自定义的函数,应该遵循“先定义,后使用”的原则。

函数定义通常由两部分组成:函数首部(也叫函数头)和函数体。

函数定义的一般形式如下: 类型说明符 函数名([形式参数列表])

{

声明部分 语句

 }

在C语言中,函数体部分可以为空(即仅有一对花括号),这样的函数称为“空函数”,

其一般形式如下:

类型说明符 函数名( )

{

}

由于函数体中没有任何语句,这种函数什么也不做。

函数定义不能嵌套,即函数体内不能定义函数,函数定义应该在所有函数之外。

函数调用的一般形式 函数定义后,要通过函数调用来使用该函数的功能。函数调用是指从一个函数内部转去执行另一个函数,以实现控制的转移和相互间的数据传送。一般来说,调用函数时通过给出实际参数实现数据传送,当被调用函数执行完毕,控制返回到前面调用它的地方。

函数调用的一般形式如下:

 函数名([实际参数列表]);

如果是调用无参函数,则实际参数列表为空,但括号不能省略。如果实参列表包含多个实参,则各实参之间用逗号分隔。实参列表中的参数可以是常量、变量或其它类型的数据及表达式。

实参列表与形参列表的个数应相等, 类型应一致,顺序应对应。

函数参数的传递

 函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 

函数的形参和实参的特点如下:

(1) 形参变量只有在函数被调用时才分配内存单元,在调用结束时,立刻释放所分配的内存单元,因此形参只有在函数内部有效。

 (2) 实参可以是常量、变量、表达式和函数等,无论实参是何种类型,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。

(3) 实参和形参在数量、类型和顺序上应严格一致,否则会发生类型不匹配的错误。

参数传递方式 值传递方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。


函数声明与函数定义的首部很相似,但是二者之间有着本质的不同。

函数定义时,函数类型、函数名、形参表及函数体是一个整体,而函数声明仅是对被调用函数的说明,其作用仅仅是告诉C编译器被调用函数的类型、名称以及其使用的参数类型。  

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。