一般情况下,不加&是不会提示出错的
不过你的结果肯定是不会对了。因为不加&你输入的东西不能传入变量
不过也有不需要加&的,例如:
定变量本身就是一个指针(如:int *a;scanf("%d",a))
或者是数组名(如:char a[10];scanf("%s",a))
这时的程序是对的
兄弟这样写是不合法的啊,在C语言中不是有规定不能对数组中的名直写操作,要于FOR语句结合才行啊!
什么&,他只是个标志,告诉你要被输入的地址,是后面的那个变量所存的地址,
只要你知道你想存的地址,用不用&都可以,
例如:
int a;scanf("%d",&a);这个&a就是表示a变量的地址;
我也可以这样写:
int a,b;b=(int)&a;scanf("%d",b);这时b变量的值就是a的地址,你看一下结果不久对了。
而,int a,*b;b=&a;scanf("%d",b);同上!!!
说错了吧,a是未初始化,但他不是NULL。而是一个随机的值,这才是他产生危险的原因,
因为你不知道你所符的这个值被放到了什么地方,而这个地址原来是用做什么的你更不知道。
同时,产生错误的原因,也不应该说叫做“溢出”!!!!
HE,HE!
&是操作符!^_^
对,是操作符!!