1

可能重复:
为什么 scanf 必须取操作员的地址

为什么我们在 printf() 的情况下传递变量,而在 scanf() 的情况下传递变量的地址?为什么要在scanf中传递地址

4

2 回答 2

4

为什么在scanf()中使用'&'而不在printf()中使用'&'

'printf'()' 只需要这些值就可以输出它们。'scanf()' 存储值,所以它需要一个地方来存储它们。这是通过提供存储值的地址(在指针中)来完成的。

于 2012-08-24T03:29:40.760 回答
2

使用 scanf 您希望被调用者修改变量,这就是您通过引用传递它的原因,如果您像使用 scanf 一样按值传递它,您将无法访问变量地址来修改其内容。

于 2012-08-24T03:28:29.020 回答