9.3实际参数
形式参数与实际参数差异
形式参数:出现在函数定义中,他的名字以假名字来表示函数调用时需要提供的值
实际参数:出现在函数调用中的表达式
实际参数是通过值传递的,调用函数时计算出每个实际参数的值并把它赋值给相应的形式参数。
9.3.1实际参数得转换
C语言允许在实际参数得类型余形式参数得类型不匹配的情况下进行函数调用.
管理如何转换实际参数的规则与编译器是否在调用前遇到函数的原型有关
1)编译器在调用前遇到函数原型
就像使用赋值一样,每个实际参数的值被隐式的转换成相应的形式参数类型
2)编译器在调用前没有遇到原型
编译器执行默认的实际参数提升:
a.把float类型得实际参数转换成double类型
b.执行整值提升,即把char类型和short类型的实际参数转换成int类型
9.3.2数组型实际参数
1.数组经常被用作实际参数 ,当形式参数是一位数组时,可以补说明数字长度.
2.运算符sizeof可以计算数组变了长度.
3.重要论点1:函数无法检测传入的数字长度得正确性.我们可以利用这一点来告诉函数,数组得长度比实际情况小。
注意⚠️:不要告诉函数,数组型实际参数比实际情况大
4.重要论点2:函数可以改变数组型形式参数得元素,而且改变会在相应的实际参数中体现出来.
5.如果形式参数是多维数组,声明参数时只能省略第一维的长度.