【发布时间】:2014-10-19 01:27:31
【问题描述】:
我有这个非常简单的程序
int test(int asdf){
asdf = asdf + 1;
return 0;
}
int main ( int argc, char **argv ){
int a = 1;
test(a);
printf("a is %d\n", a);
}
我希望程序输出 2,但它却输出 1。出了什么问题?我应该如何通过参考?
【问题讨论】:
-
@RaymondChen:当心,这个问题的公认答案是无稽之谈。
-
@Keith:不,这很好,可以解决一个非常不同的问题(如何与回调函数共享对象?)。它根本不是重复的。
-
老鼠。我是从this question 那里得到的,这与问题更接近。
-
投票结束是可以的(因为它已经被回答了)但是为什么所有这些反对意见只是指向重复的主题?
-
@Raymond:是的,那个是很好的复制品。它没有所有类型擦除包袱,只是将结果从函数传输到调用者。
标签: c