首页 新闻 会员 周边

关于字符数组赋值

0
[已解决问题] 解决于 2009-08-16 11:16

为什么 char a[2]="12";是对的

而 char a[2];

  a[2]="as";

会报错那 error C2440: '=' : cannot convert from 'const char [3]' to 'char'

问题补充: 请教一下 字符数组 应该怎么赋值哪?a={'a','s'}; 也会报错
小蚕的主页 小蚕 | 菜鸟二级 | 园豆:205
提问于:2009-08-15 21:24
< >
分享
最佳答案
0

char a[2] = "12"

这里a[2]整体来说是一个变量,是把一个字符串分解成字符数组后给了a这个变量

char a[2];

a[2] = "as";

这里第二句a[2]的2指的是索引,其对象是一个char类型,因此不能用字符串赋给他,要这么写

char a[2];

a[0] = 'a';

a[1] = 's';

当然a[2]其实是没有的

Gray Zhang | 专家六级 |园豆:17610 | 2009-08-15 23:10
对字符数组的赋值只能逐个赋值,或者 strcat,还有在初始化时赋值
小蚕 | 园豆:205 (菜鸟二级) | 2009-08-16 11:16
其他回答(2)
0

因为a[2]="as";这句造成类型不匹配错误。变量a[2]是char类型,"as"是字符串类型,当然不匹配。

Kinglee | 园豆:3158 (老鸟四级) | 2009-08-15 21:29
0

char a[2] = "12";其实完成了2个工作,一是定义char数组,另一个是初始化这个数组。c#允许在定义变量的时候进行变量初始化的。但是不允许在方法、属性、构造等结构外面赋值。所以你把a={'a','s'}; 放到构造函数里编译是可以通过的。 另外2楼也说出了问题的一部分。

Salt | 园豆:160 (初学一级) | 2009-08-16 00:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册