C中给变量赋值时,用scanf为什么变量前面要加&呢??

如题所述

&作为单目运算符是表示取变量的地址。在C语言中,函数参数进行的都是值传递。也就是说仅仅传递参数值。所以,C语言中把函数参数成为形式参数,简称形参。scanf函数,是需要改变变量值的,所以只好传递变量地址了。这也是C语言的一种特征吧,就是指针。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-01
&是地址运算符
在变量前面加一个&。意思就是把你输入的值,存储在这个变量的。如果没有这个地址符的话。电脑就不知道要把输入的数存放在哪。所以要加一个&
第2个回答  2009-08-01
scanf的第二个参数必须是地址
因此
int a;
scanf("%d",&a);//需要加&
但是
int a[5];
scanf("%d",a+3);//不需要加&,因为a+3是a[3]的地址,相当于&a[3]
第3个回答  2009-08-01
不一定要加&, 要点在于后面的参数必须是地址。 而&就是取地址本回答被提问者采纳
第4个回答  2009-08-01
这个是由scanf在stdio.h里头的定义所决定的
第一个参数是格式控制符 第二个参数是地址列表
&是地址运算符 意味取地址 后面跟的一般是一个变量的名字
当然如果是一个数组名就不用加& 一个字符指针也可以直接作为变量

相关了解……

你可能感兴趣的内容

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