函数的定义
返回值 函数名(形式参数)
{
函数体;
}
函数的参数相当于函数的入口,函数的返回值相当于函数的出口,函数体就是函数的具体功能
例子:
根据传入的两个数据,返回最大值
int max(int num1,int num2)
{
/*if(num1 > num2)
{
return num1;
}
return num2;*/
return num1>num2?num1:num2;
}
注意:
(1)如果函数不需要参数,也不需要返回值,那么使用void表示
(2)如果函数定义在主函数的后面,需要对函数进行声明,声明方法:把函数头拷贝过来,加个分号即可
(3)定义的函数需要被主函数直接/间接的调用才会实现具体的功能
形式参数和实际参数:
(1)形式参数:在函数的声明和定义的时候的参数,如果有多个形参时,使用逗号隔开,每个形参都必须指定数据类型
(2)实际参数:在函数的调用时传递的参数
注意:
(1)在函数的声明中,形参名是可以省略的
(2)实参和形参名称可以相同,也可以不同
(3)C语言的潜规则:当自定义函数中参数为空时,表示可以接受任意多个实参
void fn(); fn(num1,num2,"hello");
(4)当函数的返回值类型和return的数据类型不一致时,以函数的返回值类型为准
double fn() { return 66;}
值传递和址传递的比较:
(1)值传递表示将数据值传递过去,做了一个复制
(2)址传递表示把数据的地址传递过去了,共用同一块内存(实际也是值传递)
值传递只不过操控的是副本,本体无改变,址传递操控的是地址的副本,但是副本地址代表的值也是本体的值,所以能直接改变