#includestdio.hvoidtest(intp ); int main () {int P=100; printf ('原始p为%d(n ),p ); test(p; printf ('最后一个p是%d(n ),p ); 返回0; }voidtest(intp ) {P=P 100; printf (函数中的p为%d(n ),p ); )函数的形参和实参同名时,在函数体内变换形参时,函数体外的实参不受影响(代码如上图所示)。
输出结果:
函数体内即使是return这样的形参,函数体外的实参也不受影响。 下图
#includestdio.hinttest(intp ); int main () {int P=100; printf ('原始p为%d(n ),p ); test(p; printf ('最后一个p是%d(n ),p ); 返回0; (inttest ) intp ) {P=P 100; printf (函数中的p为%d(n ),p ); 返回p; }
但是,如果函数return将返回的此形式的参数值再次代入实际参数变量中,实际参数变量将发生变化,如下图所示
#includestdio.hinttest(intp ); int main () {int P=100; printf ('原始p为%d(n ),p ); p=test(p; printf ('最后一个p是%d(n ),p ); 返回0; (inttest ) intp ) {P=P 100; printf (函数中的p为%d(n ),p ); 返回p; }