c语言中,scanf语句里面什么时候要加&,什么时候不要加&?
c语言中,scanf语句里面什么时候要加&,什么时候不要加&?是不是前面要是定义是一个数组,里面就不要加&?...
c语言中,scanf语句里面什么时候要加&,什么时候不要加&?是不是前面要是定义是一个数组,里面就不要加&?
展开
5个回答
展开全部
这里所说的其实就是一个地址
所以当变量是一个指针或者表示一个地址时就不中&
&就是求地址的运算符
如数组名是数组第一权个元素的地址
所以数组名就可以不用加&进行运算
比如
int a;
int *p=&a;
scanf("%d",p);
则不需要使用&运算符
扩展资料:
在C语言中,输入变量的语法是:scanf("格式控制","变量地址")
可以看出,第二个的格式为变量地址。
在C语言中,变量在定义之后,就会在计算机内存中非配一块空间给这个变量,该空间在内存中的地址称为变量的地址。
为了得到变量的地址,需要在变量前加一个&(称为取地址运算符),也就是“&变量名”的写法。
参考资料来源:百度百科-scanf (计算机语言函数)
展开全部
根据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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&叫取地址符,如果你本身定义的是一个指针或一维数值的话,就不用加&,定义的是一个int,char等值的话就加&。(不完全是这样)
我想你可能是看到数组没加&才提的问吧!我也只是猜想,如果是的话等你学到指针与数组的关系你应该就明白了!
我想你可能是看到数组没加&才提的问吧!我也只是猜想,如果是的话等你学到指针与数组的关系你应该就明白了!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&是地址指针。例如:&0x55就是将0x55做为寄存器地址来进行访问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是地址符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询