一。函数名
a.函数名就是给函数起名字,最好是见名知意,方便使用者看到就能知道函数的用意。
b.函数和变量名的命名规则一样,函数后面需要(),比如int show(){}是函数,而int show;是变量
二.形参列表
形参列表就是函数定义时所指的参数,这个参数不是正真意义上的数据。
a.如果函数没有被调用,系统不会给形参分配空间。
b.形参不可以被赋值
三.函数体:
函数具体功能的实现,而这个实现就是将我们以前在main函数中所写的代码拿过来用。
四.函数的调用形式:
1.函数的一般的调用形式为:
函数名(实参列表);
实参列表:如果调用无参函数,则实参列表可以省略,如果有多个实参,需要逗号隔开;
我们根据参数和返回值归纳以下四种定义格式:
1)无参数,无返回值类型:
void show(){
printf("你好啊,我是无参无返回值类型");
}
int main(){
//调用的方式
show();//注意:除了main函数以外,其他的函数都要被调用才能执行
}
小结:1.定义的格式:
void 函数名(){}
2.调用的格式:
函数名();
注意事项:
1.函数被调用才能执行
2.在函数体中即在大括号中的变量,只有函数被调用时才能分配空间,同时函数运行结束后自动释放
3.同一程序中不能出现相同的函数名
4不同的函数中的变量可以同名
2)无参数,有返回值类型:
1.定义的格式:
返回值类型 函数名(){
函数体;
}
案例:
int show(){
printf("我是无参有返回值类型");
return 0;
}
int main(){
//无参有返回值类型的调用
//方式一:
show();
//方式二:
int result=show();
printf("result%d",result);
}
注意事项 :
1.函数的调用方式可以由调用方决定使用;
2.如果要使用返回值尽量用相同数据类型去接受;
3.函数的返回值只能有一个,不能有多个;
如果函数的返回值类型和return的返回值的类型不同时看函数的类型;
4.返回值的类型可以为变量可以为常量,可以为表达式
案例:int show(){
int n=10;
int m=90;
printf("我是无参有返回值类型n");
return n>m?n:m;
}
3)有参无返回值类型:
定义的格式:
void 函数名 (形参列表){
函数体;
}
案例:void show(int a){
printf("我是有参无返回值类型");
}
int main(){
//有参无返回值的调用方式:
//实参:函数被调用时的参数
show(12);//show(0); show(n);
return 0;
}
注意:
1.函数调用时如果有参数,必须传入参数,并且必须和被调用的函数参数类型一致;
2.参数可以是变量,可以是常量,可以是表达式
3.如果有多个实参,要用逗号分离
4.参数传递的方向:实参向形参单向传递
5.形参与实参的区别:
形参是函数定义的参数,是虚拟的
实参是函数调用时的参数,是真正的数据,形参不会被调用时是不会被分配内存空间的