第八回合:函数
函数:函数是包含一条或多条C语言的语句,完成程序中的部分功能的子程序。C源程序是由函数组成的。
A: 函数的分类
(一) 从函数的定义角度看:
(a) 库函数:由C系统提供,无需定义,如:printf,scanf,putchar…
(b) 用户定义函数:由用户定义的函数
(二) C语言的函数兼有其他语言中的函数和过程两种功能:
(a) 有返回值的函数:此函数执行完任务后,向调用者返回函数值
(b) 无返回值的函数:此函数完成任务后,不会向调用者返回函数值
(三) 从主调函数和被调函数之间数据的传输:
(a) 有参函数:(即带参函数)在函数定义和声明时都有参数
(b) 无参函数:函数定义、函数说明及函数调用均都不带参数
B: 函数的定义
(一) 无参函数的定义形式
类型标识符函数名() //括号内没有参数
{
函数语句体;
return (表达式); //== return表达式; 没返回值时,此语句不要。
}
(二) 有参函数的定义形式:
类型标志符函数名(参数列表){
函数体语句;
return(表达式);//有返回值时,此句存在。没返回值=时,此语句不要。
}
C:形式参数和实际参数
(一) 形式参数(即形参):形参出现在函数的定义中,整个函数都可以使用。
(二) 实际参数(即实参):实参出现在主函数中,进入被调函数后,实参就不能使用了。
PS:发生函数调用时,主函数把实参的值传送给被调用函数的形参从而实现主调函数向被调函数传送数据。
特点:
(a) 形参变量只有在被调用时才分配内存单元,结束后就会释放。所以形参的作用范围只有在函数内有效。
(b) 实参可以是常量、变量、表达式、函数等,无论实参是哪种类型,在进行函数调用时,他们必须有具体的值。
(c) 实参和形参在数量上、类型上、顺序上应严格一致,否则会发生“类型不配”的错误
(d) 函数调用中的数据传送时单向的。即只能把实参的值传送给形参,而不是把形参的值方向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
(复习做的笔记,还在整理中。。。。)