在c中传递引用?

在c中传递引用?,c,C,我只是想知道是否有人能回答我即将到来的考试的复习题。不幸的是,我没有一个答案钥匙来再次检查,我想确保我的答案是正确的。问题是: 以下哪项将变量int max的引用正确地传递给函数f a) f(max); b) f(*max); c) f(&max); d) f(ref_max); e) None of the above 我最好的猜测是c。除非我完全错了,否则我肯定a,d,e是不对的,它不会要求我取消对b选项的引用。如果我违反了本网站的任何发布规则,我很抱歉,我知道这对你们大多数人来说

我只是想知道是否有人能回答我即将到来的考试的复习题。不幸的是,我没有一个答案钥匙来再次检查,我想确保我的答案是正确的。问题是:

以下哪项将变量
int max
的引用正确地传递给函数
f

a) f(max);
b) f(*max);
c) f(&max);
d) f(ref_max);
e) None of the above
我最好的猜测是c。除非我完全错了,否则我肯定a,d,e是不对的,它不会要求我取消对b选项的引用。如果我违反了本网站的任何发布规则,我很抱歉,我知道这对你们大多数人来说可能是一个简单的问题。

“e)以上都不是”

C不能通过引用传递
int

最接近的另一个候选者是“c)f(&max);”。在这种情况下,传递给
f
的参数不是
max
,而是
max
的地址。
f(int*x)
收到
max
地址的副本。对于
max
,它接近于“通过引用传递”,但它是
max
地址的“通过值”

int max;
void f(int *x);
f(&max);

你能试着自己运行代码吗?(我的投票:“c”)c按值调用函数我怀疑提出问题的人希望你回答c,但正确答案应该是e,因为c没有真正的通过引用。在c语言中,你用一个指向
max
地址的指针调用
f
。指针本身正在按值传递。