c++字符数组问题

不明白的事情有1.字符数组取字符的时候要用去地址符&是否字符串就不用取地址符&2.明明是字符数组为何在输入输出是不用是st[i]i=0.1.2.3.4.…….3.还是说s... 不明白的事情有 1.字符数组 取字符的时候要用去地址符& 是否字符串就不用取地址符&2.明明是字符数组为何在输入输出是不用是st[i] i=0.1.2.3.4.…….3.还是说scanf读入的一个很长的句子?可是如果这样的话这个程序就不成立了。 展开
 我来答
忙碌小學生
2018-08-13 · TA获得超过229个赞
知道小有建树答主
回答量:156
采纳率:64%
帮助的人:52.1万
展开全部
所有数组的数组名就是数组的首地址
char a[10];a就是数组名,也是数组首地址,也就是第一个字符的地址,就是a[0]的地址,所以a==&a[0]
你可以在scanf的参数里用&a[0],是一样的效果。
关于scanf这个函数,它会根据你的参数列表进行读取输入缓冲区(缓冲区就是你程序的黑框内输入内容的地方),“%d%s”就会读取两个内容
(两个内容就是默认以空格或回车为节点的两个字符串),如
123 asd
就是两个内容,当参数表中是%s时就读取到“asd”,然后存入你的数组中,只需要给出数组的首地址,所以可以直接用数组名。
更多追问追答
追问
我还有个问题 那么按照你这么说 %s读出来是字符串 那么我在输入 I      LOVE YOU 的时候
中间有空格,按理来说这个时候应该scanf已经结束了 那么输出的不应该是 I 吗,我不懂为什么我一连串 I LOVE YOU 写完后 他才输出I LOVE YOU 并且把空格都去掉了 还有在字符数组A[100]中 A[0]事实上不是只存储一个字符吗 是存储不了字符串的 那么 你的意思是 &a[0] 能存储 I LOVE YOU ?
追答

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式