【发布时间】:2022-01-21 07:48:17
【问题描述】:
下面的解释让我很困惑:
当参数是指向变量 x 的指针时,我们通常假设 x 将被修改: f(&x);
不过,f 有可能只需要检查 x 的值,而不是改变它。
我看腻了,下面的代码无法运行。
#include <stdio.h>
void function(int& a)
{
a = 5;
}
void func(int b)
{
b = 5;
}
int main(void)
{
int x = 0;
function(x);
printf("%d", function(x));
func(x);
printf("%d", func(x));
return 0;
}
代码参考来自second answer:
int f(int &a){
a = 5;
}
int x = 0;
f(x);
//now x equals 5
int f2(int b){
b = 5;
}
int y = 0;
f2(y);
//y still equals 0
【问题讨论】:
-
int &a是对 a 的引用,而不是指向 a 的指针。参考来自 C++,而不是 C。您对 C 答案或 C++ 答案感兴趣? -
C回答,谢谢
-
你好像搞错了。参考文献是 C++ 特性,链接的问题是 C++。
-
您的代码中没有指针。
标签: c function address-operator