一、函数的基本用法
1、main函数
int main(int argc, const char * argv[]) {
printf("Hello world\n");
return 0;
}数据类型 函数名称 (参数) {
//....
return 表达式
}
2、函数
函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。
一般形式如下:
<数据类型> <函数名称>( <形式参数说明> ) {
语句序列;
return[(<表达式>)];
}
- <数据类型>是整个函数的返回值类型。
- return[(<表达式>)]语句中表达式的值,要和函数的<数据类型>保持一致。
- 如无返回值应该写为void型
- <形式参数说明>是逗号“,”分隔的多个变量的说明形式
- 大括弧对 {<语句序列> },称为函数体;
- <语句序列>是大于等于零个语句构成的
3、函数的调用
函数的使用也叫函数的调用,形式如下:
函数名称(〈实际参数〉)
- 对于无返回值的函数来讲,只能形成一个函数调用语句。
- 函数调用可以作为一个运算量出现在表达式中,也可以单独形成一个语句。
- 实参就是在使用函数时,调用函数传递给被调用函数的数据。
4、函数的声明
- 函数的说明就是指函数原型
- 其中,<形式参数说明>可以缺省说明的变量名称,但类型不能缺省
- 例如:
double power(double, int);
编译器从上往下顺序进行编译
二、函数的传参
- 函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。
- 一般形式如下:
<数据类型> <函数名称>( <形式参数说明> ) { 语句序列; return[(<表达式>)]; }
1、什么叫形参
- 形参全称为“形式参数”
- 形参是在定义函数的时候使用的参数
- 目的是用来接收调用该函数时传递的参数
2、什么叫实参
- 实参,全称为"实际参数"。
- 实参是在调用时传递给函数的参数,即传递给被调用函数的值。
- 在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”。
3、什么是参数传递
- 在程序运行过程中,将实际参数的值或者地址传递给被调用函数的形式参数,从而在函数中完成对数据处理和返回的过程。
- 在C语言当中,参数的传递方式本质上只有一种,就是值传递。
- 但为了更好区分理解,划分了三种方式
4、函数的参数传递
1)函数之间的参数传递方式:
- 全局变量
- 值传递方式
- 指针传递方式
2)全局变量
- 全局变量就是在函数体外说明的变量
- 全局变量一经定义后就会在程序的任何地方可见。
- 函数调用的位置不同,程序的执行结果可能会受到影响。不建议使用
三、函数传参-值传递
1、值传递
- 调用函数将实参传递给被调用函数,被调用函数将创建同类型的形参并用实参初始化
- 形参是新开辟的存储空间,在函数中改变形参的值,不会影响到实参
2、值传递方式的示意图
四、函数传参-指针传递
- 按地址传递,实参为变量的地址,而形参为同类型的指针
- 被调用函数中对形参的操作,将直接改变实参的值
- 被调用函数对指针的目标操作,相当于对实参本身的操作