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:不,它不是。您正在添加一個間接級別,但您總是*通過價值傳遞您的參數。 –