c语言中,scanf语句里面什么时候要加&,什么时候不要加&?

c语言中,scanf语句里面什么时候要加&,什么时候不要加&?是不是前面要是定义是一个数组,里面就不要加&?... c语言中,scanf语句里面什么时候要加&,什么时候不要加&?是不是前面要是定义是一个数组,里面就不要加&? 展开
 我来答
四舍五不入6
高粉答主

2020-04-13 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71370

向TA提问 私信TA
展开全部

这里所说的其实就是一个地址

所以当变量是一个指针或者表示一个地址时就不中&

&就是求地址的运算符

如数组名是数组第一权个元素的地址

所以数组名就可以不用加&进行运算

比如

int a;

int *p=&a;

scanf("%d",p);

则不需要使用&运算符

扩展资料:

在C语言中,输入变量的语法是:scanf("格式控制","变量地址")

可以看出,第二个的格式为变量地址。

在C语言中,变量在定义之后,就会在计算机内存中非配一块空间给这个变量,该空间在内存中的地址称为变量的地址。

为了得到变量的地址,需要在变量前加一个&(称为取地址运算符),也就是“&变量名”的写法。

参考资料来源:百度百科-scanf (计算机语言函数)

White_MouseYBZ
2015-10-16 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6624万
展开全部

根据scanf函数的定义,其接收元素必须是类型与控制字符串元素对应的变量的地址。&是取地址操作符,当接收元素不是地址时要用&获得变量的地址,当接收元素已经是地址时就不用&了。如:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    int x;
    char a[10];
    scanf("%d%s",&x,a);//x前要加&,因为x不是地址,a前不加,因为数组名就是地址
    printf("%d %s\n",x,a);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝凝蕊C2
2012-08-26 · TA获得超过155个赞
知道答主
回答量:63
采纳率:100%
帮助的人:59.9万
展开全部
&叫取地址符,如果你本身定义的是一个指针或一维数值的话,就不用加&,定义的是一个int,char等值的话就加&。(不完全是这样)
我想你可能是看到数组没加&才提的问吧!我也只是猜想,如果是的话等你学到指针与数组的关系你应该就明白了!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wjj09062000
2012-08-26
知道答主
回答量:6
采纳率:0%
帮助的人:3.7万
展开全部
&是地址指针。例如:&0x55就是将0x55做为寄存器地址来进行访问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whoami2099
2012-08-26 · TA获得超过175个赞
知道小有建树答主
回答量:463
采纳率:100%
帮助的人:171万
展开全部
这个是地址符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式