字符数组的定义与初始化:
char a[ 5 ] = { ’ a ', ’ b ', ’ c ', ’ d ’ };
注意:
- 大小为 n 的字符数组,最多能赋值 n - 1 个字符。若超过 n - 1 个,则会直接报错;若是少于 n - 1 个,则其余的自动赋为空字符 ‘ \0 ’ 。
- 若在定义数组时赋值为空,即:char a[ 5 ] = { ’ \0 ’ }; 其实这样赋值只是把第 1 个元素赋值为 ‘ \0 ’,后面的都默认用 ‘ \0 ’ 填充。
而若在定义数组时,char a[ 5 ] = { ’ a ’ }; 此时只有第一个为 ‘ a ’ ,后面都是 ‘ \0 ’ 。
千万不要以为写成 char a[ 10 ]; 不赋值也可以,这样写里面的内容是乱的。
所以在定义数组时,最好写成:char a[ 5 ] = ’ \0 ’ ;
对字符数组进行赋值的方式:
- char a[ 5 ] = " abcd "; //在初始化时,对数组进行赋值;定义好后不能这样赋值。
- char a[ 5 ] = { ’ a ', ’ b ', ’ c ', ’ d ’ }; //这种方式也是只能在初始化时使用。
- 对字符指针变量赋初值(初始化):
char *a=“I love China”;
等价于:
char *a;
a = “I love China”;