[C++程序设计]字符数组的赋值与引用

只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值.

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′};