我试图做一个函数内部的计算,但我不知道为什么它不工作:简单计算
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