我試圖做一個函數內部的計算,但我不知道爲什麼它不工作:簡單計算
int calculate(int x){
x = x + 2;
return x;
}
int main(){
int x = 0;
int i;
for(i=0;i<10;i++){
calculate(x);
}
printf("i = %d, x = %d\n", i, x);
}
我明白,x爲0,每次經過的時候功能。但是,我該如何解決它? 據說我應該返回10,x應該返回20.
我看到的唯一'return'不在該代碼中。 –
因爲C pas參數爲值。對'x'的所有更改都是該函數的本地特性。您可以改用指針。 –
如果您不願意切換到C++,可以將函數原型更改爲「void calculate(int&x)'。這會傳遞對'x'的引用,所以更改不再是局部的。 – ilent2