在用scanf时需要&,printf不需要&?

如题所述

不一定啦,scanf函数原型的第一个参数是格式符,第二个参数是变量的地址,如果是一般的变量就需要&,比如:int a,那么:scanf(“%d”,&a),但是如果是数组,比如:char a[10];那么:scanf(“%s”,a)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-09
不需要,其实在 scanf("%d",&a); 这样的语句中,&是地址运算符(返回 a 在内存中的位置),也就是说其实是:
scanf("%d",变量的地址); 而printf则不需要。
第2个回答  2012-12-09
&是取地址操作符
scanf &a 是将从键盘输入的值赋给变量a在内存中的地址,也就是赋给a
print f是打印变量a的值
若a是指针
那scanf a
或printf *a也是说得通的
主要的区别还是在于这两个操作符的实现方法不同
第3个回答  2012-12-09
&是取地址符,scanf把所输入的字符存到该地址,printf是打印该地址的内容,不需要&
第4个回答  2012-12-09
scanf 是输入的,参数那是是传入的变量的地址,&是取地址的意思,所以要。printf不需要,直接是输出参数的值