c++中,要把字符串“ABCD”赋值给一个变量X,为什么 char x; x="ABCD"不行,char x[];x[]=“ABCD"也不行

char x[]="ABCD" 就行了???? 为什么要定义成数组的形式?

char x;申明的是一个字符变量,字符变量只能存一个字符,即'A','B'这些(注意单引号),所以char x是不能讲一个字符串付给它的;char x[];x[]="ABCD";这里不可以是因为申明一个字符数组(char x[];是字符数组)要给他的大小赋值即中括号里要有值,而后面的char x[] = "ABCD";可以的原因是系统通过"ABCD"已经知道了字符数组的大小,是5,注意:还有一个隐藏的'\0',所以是5.字符数组类似字符串
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-26
char x;//定义的是单个字符
char x[];//定义的是一串字符追问

如果写
string x;
x="ABCD" 行不?

追答

string类中重载了=操作符,因此,你的写法是可以的。

本回答被提问者采纳
第2个回答  2012-05-26
你定义String啊,字符串是String型的,数组是挨个存储vde
第3个回答  2012-05-26
char x[]="ABCD";//要这样
char x[];//这样错了 ,不能定义空的