2
我无法通过引用简单传递按我期望的方式工作。拳头了,当我编译,我得到以下警告:在C中通过引用无法正常工作
warning: value computed is not used [-Wunused-value]
其次,我希望它打印2,而不是1在程序结束。
$ ./testAdd
1
下面是简单的代码:
#include <stdio.h>
void addone(int *j) {
*j++;
}
int main(int argc, char *argv[])
{
int i = 1;
addone(&i);
printf("%d\n", i);
return 0;
}
这是怎么回事错在这里?
@EdS。严格地说,虽然C没有引用传递,但将一个指针传递给一个函数并改变它所引用的值实际上是一样的。看到[这个答案](http://stackoverflow.com/questions/2229498/passing-by-reference-in-c/2229510#2229510)以及。 – Kninnug
@Kninnug:不,它不是。您正在添加一个间接级别,但您总是*通过价值传递您的参数。 –