为什么在这里不能用char?和string的区别在哪里?以及应该如何正确使用?
char name[3];
说明name这个数组每个单元存储的是 char 类型也就是字符类型的数据。
string name[3];
说明name这个数组每个单元存储的是 string 类型也就是字符串类型的数据。
"张三" “李四” 是字符串类型的
非要用char 类型的可以定义如下:
char name[3][3] = {"张三","李四","王五"};
//分布如下
name[0][0]//张
name[0][1]//三
name[0][2]//\0
name[1][0]//李
name[1][1]//四
name[1][2]//\0
name[2][0]//王
name[2][1]//五
name[2][2]//\0
name[0]//张三\0
name[1]//李四\0
name[2]//王五\0
string是,char是字符。
string name[3]={"张三","李四",""};是声明了一个名为name的有3个字符串元素的字符串数组,每个元素都是一个字符串,并依次用"张三","李四","王五"3个字符串来初始化。合法。
char name[3]={"张三","李四","王五"};是声明了一个名为name的有3个字符元素的字符数组,每个元素都是一个字符,并试图依次用"张三","李四","王五"3个字符串来初始化,显然=左右两边类型不匹配。非法。
若把char name[3]={"张三","李四","王五"};改成char name[3][5]={"张三","李四","王五"};就合法了,意思是声明了一个名为name的3行5列的,每一行最多可以有5个字符。刚好,"张三","李四","王五"每个字符串都是5个字符,所以合法。
谢谢谢谢
本回答被提问者采纳建议你这样试试看:
- 一维数组char的画,每一个存的是字符,用‘字符’表示
字符串的话,则是"字符串"
区别:字符串存得字符比字符多,而字符只能存一个
一般的话,使用字符串较多,除非是方法参数或返回值是字符才用字符