为什么我们要向scanf提供地址?

时间:2015-08-27 09:31:49

标签: c pointers

因此,在以下代码段中,我们要求用户为整数x分配一些值。

   int x;
   scanf("%d", &x);

我感到困惑的是我们为什么要说"将输入的值放入x"的地址,而不只是"让x等于输入的价值"? scanf("%d", x)会出现什么问题?

1 个答案:

答案 0 :(得分:3)

所有函数调用都按值获取参数。传递x只会scanf x x的副本,但仍然无法访问我们的 scanf

获取变量的地址会产生一个指针,该指针在复制时仍指向同一个变量。因此x可以取消引用其指针副本并获得对{{1}}的访问权限。