因此,在以下代码段中,我们要求用户为整数x
分配一些值。
int x;
scanf("%d", &x);
我感到困惑的是我们为什么要说"将输入的值放入x"的地址,而不只是"让x等于输入的价值"? scanf("%d", x)
会出现什么问题?
答案 0 :(得分:3)
所有函数调用都按值获取参数。传递x
只会scanf
x
x
的副本,但仍然无法访问我们的 scanf
。
获取变量的地址会产生一个指针,该指针在复制时仍指向同一个变量。因此x
可以取消引用其指针副本并获得对{{1}}的访问权限。