c语言中&符号是什么意思?如下:(为什么当scanf("%d",x); x中少了&就会遇到问题?)

#include<stdio.h>
int main()
{
int x,y;
scanf("%d",x);
if(x<0)
y=-1;
else
if(x==0)
y=0;
else
y=1;
printf("x=%d,y=%d\n",x,y);
}

&是求地址运算符,因为scanf是个函数,函数传参的话不加&只是把x的值传给scanf,而我们是要把x的值给改变了,所以要把地址给它,它才知道在哪儿改。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-06
&是取地址运算符,scanf 是标准输入函数,其调用格式为scanf("格式控制",地址表列),只可以用地址。如果是数组的话,直接用数组名和指针名即可,因为二者都是地址。而 X 只是变量,&X才是地址。
第2个回答  2012-04-06
scanf("%d",x);你必须加个&你是要把你输入的数字 赋值给x的地址才行
第3个回答  2012-04-06
scanf("输入控制符",输入参数);

功能:
将从键盘输入的字符转化为输入控制符所规定的格式的数据
然后将该数据存入 输入参数所指定的存储空间 中

也就是说输入参数要确定一块存储空间也就是确定一块地址
而&就是取地址符,
如果不加& 那么本题中的x是一个普通变量,他是不能代表一个地址的

所以必须加
这样才能将从键盘敲入的数据存到变量所代表的空间

供参考! 呵呵
第4个回答  2012-04-06
取地址
相似回答