scanf为什么要加&,printf不加?

变量名不就已经代表地址了吗 ?
再说输入要先找到地址,输出为什么不找地址?

  c语言中,scanf是为变量获得输入值;printf是将变量值输出。
  输出时,只需要值就行了;而输入时,就是把值赋值给具体的变量时,必须知道变量的地址。所以这时候需要 & 来取变量的地址。
  实际上,如果是 字符串变量、数组变量、指针变量等,因为本身就代表着地址,这个时候反而不要加 & ,普通变量需要加 &。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-18
变量名不代表地址,除非数组!

输入是要对 变量所分配的内存区域赋值,便要找到相应的内存位置,便要地址(类似地址传递)!

输出只要变量的值,进行数据(类似值传递)就行!本回答被提问者和网友采纳
第2个回答  2020-07-12
scanf为什么要加&,printf不加?
char c1;
scanf("%c", &c1);
printf("c1=%c", c1);

答案
scanf 和 printf 也是函数。

如果调用的函数
1 要修改变量的值, 传,变量的地址。
2 只是使用变量。 传,变量,。
第3个回答  2012-12-18
一个读,一个取,为什么书店里看书不要钱,买书要钱??

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网