我知道scanf需要一个地址,但这有用吗?
int val;
int *valP = &val;
scanf("%d", valP);
Run Code Online (Sandbox Code Playgroud)
我的书只显示
int val;
scanf("%d", &val);
Run Code Online (Sandbox Code Playgroud)
有效吗?
是的,它是有效的.
scanf()期望一个指针可以写入一个整数(好,一个指向适当数据类型的指针,具体取决于你在格式字符串中描述的内容)(非const).只要它指向有效的内存并且是可写的,那么你是如何设计指针并不重要的.
在您偏离本书时,您已经介绍了将指针存储在变量中并将该变量传入的中间步骤,但是否则语义完全不变.