为什么 char a[2]="12";是对的
而 char a[2];
a[2]="as";
会报错那 error C2440: '=' : cannot convert from 'const char [3]' to 'char'
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]其实是没有的
因为a[2]="as";这句造成类型不匹配错误。变量a[2]是char类型,"as"是字符串类型,当然不匹配。
char a[2] = "12";其实完成了2个工作,一是定义char数组,另一个是初始化这个数组。c#允许在定义变量的时候进行变量初始化的。但是不允许在方法、属性、构造等结构外面赋值。所以你把a={'a','s'}; 放到构造函数里编译是可以通过的。 另外2楼也说出了问题的一部分。