char 数组名[数组长度];
以一维字符数组为例,二维数组同理。
C语言字符数组或字符串以空字符(’\0’)结束,但是在给字符数组初始化时末尾可以不加‘\0’。
3\ char a[]={'h','e'}; 4\ char a[]={'h','e','\0'};定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。
5\ char a[]="he"; 6\ char a[]={"he"}; /*这一种方法等价于4\*/ 7\ char a[3]="he"; 8\ char a[3]={"he"}; /*这一种方法等价于2\*/用字符串常量来使字符数组进行初始化,可以省略花括号,可以设置数组长度,也可以省略数组长度;
错误原因都是花括号内的长度大于数组长度。
方法1\,在定义数组时没有对其进行初始化,用之后的语句对其进行赋值,结果与方法1\到8\的结果相同。 方法2\,由于字符型数据以ASCII代码(整数形式)存放的,因此可以使用整型数组来存放字符型数据,但是浪费存储空间。
3\ char a[2]; a="he";方法3\,是错误的,C语言只允许对数组元素一一赋值,而不能直接操作一个数组。
4\ char *a="he"; 5\ char *a; a="he";方法4,5\等价,a是一个字符指针变量,语句将字符串"he"的第一个元素的地址赋给字符指针变量a。
[1]谭浩强.C语言设计第四版.清华大学出版社