函数参数是它的局部变量。函数参数通过拷贝来初始化所提供的参数的值。所以任何参数的改变都不会影响相应的参数。 退出函数后,其参数(局部变量)被销毁。
例如,你能想象你的函数
void change(int i, int j) {
i = i + j;
}
被称为像
change(a, 10);
以下方式
void change(/*int i, int j*/) {
int i = a;
int j = 10;
i = i + j;
}
正如你可以看到变量本身不会改变。
有两种方法。第一个参数将通过引用传递,否则函数将返回其结果。例如
#inlcude <stdio.h>
void change(int *i, int j) {
*i = *i + j;
}
int main() {
int a = 50;
printf("a before = %d\n", a);
change(&a, 10);
printf("a after = %d\n", a);
return 0;
}
或者
#inlcude <stdio.h>
int change(int i, int j) {
i = i + j;
return i;
}
int main() {
int a = 50;
printf("a before = %d\n", a);
a = change(a, 10);
printf("a after = %d\n", a);
return 0;
}
OMG。你需要一个基本的C课,不要介意。 –
关于指针的特别长的教训。 – Arc676
寻找传递值,然后阅读有关指针。 –