可能重复:
为什么 scanf 必须取操作员的地址
为什么我们在 printf() 的情况下传递变量,而在 scanf() 的情况下传递变量的地址?为什么要在scanf中传递地址
可能重复:
为什么 scanf 必须取操作员的地址
为什么我们在 printf() 的情况下传递变量,而在 scanf() 的情况下传递变量的地址?为什么要在scanf中传递地址
为什么在scanf()中使用'&'而不在printf()中使用'&'
'printf'()' 只需要这些值就可以输出它们。'scanf()' 存储值,所以它需要一个地方来存储它们。这是通过提供存储值的地址(在指针中)来完成的。
使用 scanf 您希望被调用者修改变量,这就是您通过引用传递它的原因,如果您像使用 scanf 一样按值传递它,您将无法访问变量地址来修改其内容。