【发布时间】:2013-05-16 22:35:05
【问题描述】:
我无法按我期望的方式通过引用获得简单的通行证。拳头,当我编译时,我收到以下警告:
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 没有通过引用传递,但传递指向函数的指针和更改它引用的值实际上是一回事。参见this answer。
-
@Kninnug:不,不是。您正在添加一个间接级别,但您总是按值传递参数。
标签: c operator-precedence