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

Ben*_*ist 1 c pointers

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

   int x;
   scanf("%d", &x);
Run Code Online (Sandbox Code Playgroud)

我很困惑的是为什么我们说"将输入的值放入x的地址",而不仅仅是"让x等于输入的值"?会有什么问题scanf("%d", x)

Bar*_*mar 7

在C中,参数按值传递.因此,如果您将其x用作参数scanf,它只获取值的副本x,则不会获得对实际变量的引用x.

通过传递指针,您可以为其提供存储x变量值的内存地址.这允许通过存储到该内存中scanf来修改值x.