概述:
一个较大的程序可以分为若干个程序模块,每一个模块来实现一个特定的功能。
在高级语言中用子程序实现模块的功能,子程序由函数来完成。
一个C语言可由一个主函数和若干个其他函数构成。
函数间的调用关系:由主函数调用其他函数,其他函数也可以相互调用,同一个函数可以被一个或多个函数调用任意多次。
注意:
所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的。一个函数并不从属于另一个函数,即函数不能被嵌套定义。函数间可以相互调用,但不能调用main函数。main函数是系统调用的。
无参函数定义的一般形式:
类型标识符 函数名(){
声明部分
语句部分
}
在定义函数时要用“类型标识符”指定函数值的类型,即函数返回值的类型。如果函数无返回值,则函数定义为void类型。
有参函数定义的一般形式:
类型标识符 函数名(形式参数列表){
声明部分
语句部分
}
注意区分形式参数和实际参数:
在有参函数中,定义函数时函数名后面的括弧中的变量名称为“形式参数”(简称“形参”)
在主函数中调用有参函数时,函数名括弧中传入的参数(可以是表达式,但要求有确定的值)称为“实际参数”(简称“实参”)
说明: 在定义函数中指定的参数,在未出现函数调用时,它们并不占内存中的存储单元。只有在发生函数调用时,函数中形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。
空函数定义的一般形式:
类型标识符 函数名(){}
调用此函数时,什么工作也没做,没有任何实际作用。在编码过程中可以先写函数,在后期扩充函数功能时补充具体代码。
函数的参数和函数的值:
1.大多数情况下,主调函数和被调函数之间有数据传递关系。
2.return后的值作为函数的返回值。
3.在不同的函数之间传递数据,可以使用方法:参数、返回值、全局变量。
4.如果参数列表包含多个参数,则各参数间用逗号隔开。实参和形参的个数应相等,类型应匹配。
一个返回俩个数中较大一个数的小代码:
#include<stdio.h>
int main(){
int a,b,c;
printf("请输入俩个数据,用空格隔开");
scanf("%d %d",&a,&b);
int max(int x,int y);//声明函数
c = max(a,b);//调用函数,传入参数
printf("Max is %d",c);
return 0;
}
int max(int x,int y){
int z;
z = x > y ? x : y;
return z;
}