形式参数和实际参数(3/3) int max(mtx,inty)/x、y是形参 int Z; z=x>y?x:y穷 return Z
形式参数和实际参数(3/3) int max(int x, int y) // x、y是形参 { int z; z = x>y?x∶y; return z; }
对形参和实参的说明(1/4) 1)在定义函数中指定的形参,在未出现函数调用时, 它们并不占内存中的存储单元。 如上例:只有在发生函数调用时,函数max中的形参才 被分配内存单元。在调用结束后,形参所占的内存单元 也被释放。 2)实参可以是常量、变量或表达式,如: max(3,a十b); 但要求它们有确定的值。在调用时将实参的值赋给形参。 3)在被定义的函数中,必须指定形参的类型
对形参和实参的说明(1/4) 1)在定义函数中指定的形参,在未出现函数调用时, 它们并不占内存中的存储单元。 如上例:只有在发生函数调用时,函数max中的形参才 被分配内存单元。在调用结束后,形参所占的内存单元 也被释放。 2)实参可以是常量、变量或表达式,如: max(3, a+b); 但要求它们有确定的值。在调用时将实参的值赋给形参。 3)在被定义的函数中,必须指定形参的类型
对形参和实参的说明(2/4) 4)实参与形参的类型应相同或赋值兼容。 相同则直接赋值,如果只是兼容,则要进行类型 转换。 如:在例8.2中,如果实参值a为3.5,而形参x为整 型,则需将实数3.5转换成整数3,然后送到形参x 中
对形参和实参的说明(2/4) 4)实参与形参的类型应相同或赋值兼容。 相同则直接赋值,如果只是兼容,则要进行类型 转换。 如:在例8.2中,如果实参值a为3.5,而形参x为整 型,则需将实数3.5转换成整数3,然后送到形参x 中
对形参和实参的说明(3/4) 5)C语言规定,实参变量对形参变量的数据传 递都是“值传递”,即单向传递,只由实参传给 形参,而不能由形参传回来给实参。在内存中, 实参单元与形参单元是不同的单元。如图所示。 因此,在执行一个被调用函数时,形参的值如果 发生改变,并不会改变主调函数的实参的值。 a
对形参和实参的说明(3/4) 5)C语言规定,实参变量对形参变量的数据传 递都是“值传递”,即单向传递,只由实参传给 形参,而不能由形参传回来给实参。在内存中, 实参单元与形参单元是不同的单元。如图所示。 因此,在执行一个被调用函数时,形参的值如果 发生改变,并不会改变主调函数的实参的值
对形参和实参的说明(4/4) 例:交换两个数的值(下面的程序不能达到目的)。 int main() int a=10; int b=20; swap(a,b)为 return 1; void swap(int a,int b) int t t=a; a=b; b=t }
对形参和实参的说明(4/4) 例:交换两个数的值(下面的程序不能达到目的)。 int main() { int a = 10; int b = 20; swap(a, b); return 1; } void swap(int a, int b) { int t; t = a; a = b; b = t; }