当前位置:编程学习 > C/C++ >>

关于字符数组的初始化问题

char c[6]={“china”}和char c[6]={‘c’,‘h’,‘i’,‘n’,‘a’}有什么区别嘛前者为字符串那后者是什么呢?
追问:那为什么前者的最后需要一个数组元素并为\0呢?那为什么char c[6]={“china”}就比 char c[6]={‘c’,‘h’,‘i’,‘n’,‘a’}多一个字符呢?char c[6]={‘c’,‘h’,‘i’,‘n’,‘a’}可以改为char c[5]={‘c’,‘h’,‘i’,‘n’,‘a’}就不存在最后一位为空且为\0的情况了吧那为什么前者的最后需要一个数组元素并为\0呢?char c[6]={‘c’,‘h’,‘i’,‘n’,‘a’}可以改为char c[5]={‘c’,‘h’,‘i’,‘n’,‘a’}就不存在最后一位为空且为\0的情况了吧那为什么char c[6]={“china”}就比 char c[6]={‘c’,‘h’,‘i’,‘n’,‘a’}多一个字符呢?
答案:char c[6]={“china”}和char c[6]={‘c’,‘h’,‘i’,‘n’,‘a’}和char c[5]={‘c’,‘h’,‘i’,‘n’,‘a’},他们三个,前两个是一样的,唯一不同的地方是,第一个是以字符串的形式直接给六个元素赋值,既然是字符串就要有字符串结束标记,即“/0”,所以第一个“china”在加上一个“/0”正好六个元素。第二个是以字符的形式赋值,不是字符串,不用在字符串后添加字符串结束标记,但是该数组有六个元素,赋值的只有五个,所以第六个默认赋值“/0”;第三个也是以字符形式赋值,但是它只有五个元素,刚刚好,所以不用添加0
其他:两者都为字符数组,没有任何区别。 

上一个:void display(); int &get_value()//函数返回值为引用时,可以修改函数返回值。{return value;}是什么意思
下一个:一个小白学C++,第一个程序无法成功。没有语法错误。求大神解决。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,