#include <stdio.h>
void test(int P);
int main()
{
int P = 100;
printf("原来的P是%d\n", P);
test(P);
printf("最后的P是%d\n", P);
return 0;
}
void test(int P)
{
P = P + 100;
printf("函数中的P是%d\n", P);
}
函数的形参和实参同名时,函数体内改变形参时,函数体外实参不受影响(代码如上图):
输出结果:

函数体内即使return这个形参,函数体外的实参也不受影响:如下图
#include <stdio.h>
int test(int P);
int main()
{
int P = 100;
printf("原来的P是%d\n", P);
test(P);
printf("最后的P是%d\n", P);
return 0;
}
int test(int P)
{
P = P + 100;
printf("函数中的P是%d\n", P);
return P;
}

但如果把函数体return回来的这个形参数值再次赋值给实参变量,那么,实参变量会改变,如下图
#include <stdio.h>
int test(int P);
int main()
{
int P = 100;
printf("原来的P是%d\n", P);
P=test(P);
printf("最后的P是%d\n", P);
return 0;
}
int test(int P)
{
P = P + 100;
printf("函数中的P是%d\n", P);
return P;
}

本文探讨了C语言中函数形参与实参的关系。当形参和实参同名时,函数体内对形参的修改不会影响到实参。然而,如果将函数返回值赋给实参,实参的值会发生变化。示例代码展示了这种行为。
3097

被折叠的 条评论
为什么被折叠?



