先上结论,形参是实参的一份拷贝。
很多人一看到这个题目,写的代码如下
void Func(int x){
x += 1;
}
int main(){
int num = 0;
Func(num);
printf("%d\n",num);
Func(num);
printf("%d\n",num);
Func(num);
printf("%d\n",num);
system("pause");
return 0;
}
在函数里改变x的值并影响不到num值的变化
所以我们可以考虑用传指针的方式来考虑此题
void Func(int* x){
*x += 1;
}
int main(){
int num = 0;
Func(&num);
printf("%d\n",num);
Func(&num);
printf("%d\n",num);
Func(&num);
printf("%d\n",num);
system("pause");
return 0;
}