去北京去哪玩:为何在C语言中的scanf()中要用到取地址符,而printf()中却不用?

来源:百度文库 编辑:高考问答 时间:2024/05/09 07:23:56
例如scanf("%d", &xx), 而printf("%d", xx)

真正有兴趣的话,可以看看能否找到printf和scanf的源码实现,这样就清楚了。

scanf意思是从键盘输入数据,从键盘得到字符,放到某个变量里,当然要它的地址了;printf意思是输入某个变量的内容,只要知道变量名就行了。我个人认为是不是为了符合人的思考习惯。
另外,c语言开发时就这么规定的,没有太多的为什么,当初人家发明c语言时说scanf需要加地址符,那咱们用的时候就得加,当初人家发明c语言时说scanf不需要加地址符,那咱们用的时候自然就不用加了。

c语言开发时就这么规定的,没有太多的为什么,当初人家发明c语言时说scanf需要加地址符,那咱们用的时候就得加,当初人家发明c语言时说scanf不需要加地址符,那咱们用的时候自然就不用加了。

规定的,哪有为什麽