C语言正确定义并初始化字符数组(考试向)

    科技2025-08-09  8

    一、字符数组的定义

    char 数组名[数组长度];

    二、字符数组的初始化

    以一维字符数组为例,二维数组同理。

    (一)正确的初始化方法

    1\ char a[2]={'h','e'}; 2\ char a[3]={'h','e','\0'};

    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\*/

    用字符串常量来使字符数组进行初始化,可以省略花括号,可以设置数组长度,也可以省略数组长度;

    (二)错误的初始化方法

    9\ char a[2]={'h','e','\0'}; 10\ char a[2]="he"; 11\ char a[2]={"he"};

    错误原因都是花括号内的长度大于数组长度。

    (三)对字符数组赋值

    1\ char a[2]; a[0]='h'; a[1]='e'; 2\ int a[10]; a[0]='h';

    方法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语言设计第四版.清华大学出版社

    Processed: 0.016, SQL: 8