在C语言中char a[ 50];用scanf()输入字符数组加不加&符号,是scanf("%s",&a)还是scanf("%s",a)
展开全部
应该是 scanf("%s",a);
因为 a 其实是个地址,也就是数组第一个元素a[0]的地址,因此跟 scanf("%s", &a[0]); 是一样的,这样应该清楚一点吧,不懂可追问
因为 a 其实是个地址,也就是数组第一个元素a[0]的地址,因此跟 scanf("%s", &a[0]); 是一样的,这样应该清楚一点吧,不懂可追问
追问
我也这样认为当a为数组名时,应该为scanf("%s",a)但是在VC编译器上这scanf("%s",&a)也正确,怎么回事?
追答
这就是数组跟指针的区别了,虽然数组跟指针非常像,但就有区别
数组名a是一个地址,也就是a[0]的地址,如前面所说的。另外,取a的地址其实也就是取a[0]的地址,因此&a和&a[0]是一样的
指针p也是一个地址,但p和&p完全是两码事,是两个不同的东西,前者是指针指向的地址,后者是指针的地址
展开全部
scanf(" %s ",a);
&是取地址符,表示这里是存储一个字符的地址 。
但在这里 a 作为一个数组名,它是一个常量指针,表示的也就是一个地址。
&是取地址符,表示这里是存储一个字符的地址 。
但在这里 a 作为一个数组名,它是一个常量指针,表示的也就是一个地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是scanf("%s",a),a表示的就是数组的地址,不需要用&进行取地址了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是scanf("%s",a),a表示的就是数组的地址,不需要用&进行取地址了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是要& 的 表示地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询