1、作为一维数组名,a和&a表示的地址值相同是必然的,不是偶然。但更重要的是它们还有区别,位于白马背上的不一定都是猴子的师傅。 2、字符串,是特定的语法概念,其实体结构,开始于某个首地址,结束于码值为0的字符。用首地址表示,同时其语法意义也多半是其首地址。可以放进字符数组这个容器,也可以不放。 字符数组是每个元素占用1字节的数组,可以用来存放字符串也可以用来存放不是字符串的东西。 3、见上,%s引用首地址,打印字符串。碰巧该字符串放在字符数组里,看着好像打印字符数组了。
在CSDN论坛里搜下"字符数组和字符串的区别和联系". scanf()函数用法,参考下:https://blog.csdn.net/luxuejuncarl/article/details/1576513
其一,scanf里面第二个参数应该是a,而不是&a。没表现出问题是因为它俩的“值”都是同样的地址值。但是它们的类型不同,乱用是一个很粗浅的错误。 其二,a没有给出长度,未初始化的数组又不给出长度,这应该是个error才对。
给数组a指定一个长度,如char a[32].
69,373
社区成员
243,080
社区内容
加载中
试试用AI创作助手写篇文章吧