函數參數是它的局部變量。函數參數通過拷貝來初始化所提供的參數的值。所以任何參數的改變都不會影響相應的參數。 退出函數後,其參數(局部變量)被銷燬。
例如,你能想象你的函數
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
尋找傳遞值,然後閱讀有關指針。 –