只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值.
char c[5];
c={′C′,′h′,′i′,′n′,′a′}; //错误,不能对整个数组一次赋值
c[0]=′C′; c[1]=′h′;c[2]=′i′;c[3]=′n′;c[4]=′a′; //对数组元素赋值,正确
如果已定义了a和b是具有相同类型和长度的数组,且b数组已被初始化,请分析:
a=b; //错误,不能对整个数组整体赋值
a[0]=b[0]; //正确,引用数组元素
字符串和字符串结束标志
常量来初始化字符数组。例如
char str[]={′′I am happy′′}; 也可以省略花括号,直接写成
char str[]=′′I am happy′′;
上面的初始化与下面的初始化等价: char str[]={′I′,′ ′,′a′,′m′,′ ′,′h′,′a′,′p′,′p′,′y′,′\0′};
需要说明的是:字符数组并不要求它的最后一个字 符为′\0′,甚至可以不包含′\0′。如以下这样写完全是合法的:
char str[5]={′C′,′h′,′i′,′n′,′a′};
是否需要加′\0′,完全根据需要决定。但是由于 C++编译系统对字符串常量自动加一个′\0′。
人们为了使处理方法一致,便于测定字符串的实际长度,以及在程序中作相应的处理,在字符数组中有效字符的后面也人为地加上一个′\0′。
如 char str [6]={′C′,′h′,′i′,′n′,′a′,′\0′};