a的值
cout<<*a;
错误
cout<<*a;
a的首字符
cout<<&a;
a的地址
cout<<&a;
a的地址
1、字符数组相当于字符串
2、其末尾字符为’\0‘
3、其长度=有效字符数+1,在定义字符数组长度时切记。
4、初始化方法
①chararr[6]={"hello"};
②chararr[6]="hello";//与第①种相同,一般使用这一个
③chararr[6]={‘h’,'e’,'l’,'l’,'o’,'\0′};//主要在特殊字符时使用
5、"a"和‘a’的区别:
前者是字符串,占用2个字节空间,后者是字符,占用1个字节空间。
6、数组长度计算:
(1)sizeof
方法:
sizeof(数组名)/sizeof(数组类型名)
说明:
数组占用字节除以数组类型所占字节,结果为数组元素个数
(2)strlen
说明:
strlen,求字符串有效长度
方法:
strlen(字符数组名)//结果为字符数组有效字符长度,不包括末尾的’\0′
对于chararr[]="hello";来说,sizeof(arr)为6,包含了数组末尾的’\0′,而strlen(arr)为5,不包含末尾的’\0′;
而对于其它类型的数组来说,没有strlen命令,sizeof(数组名)计算的结果就是这个数组所占用的字节数。
7、字符数组输出的特殊性
C++规定,数组的名称就是数组的首地址,对于a[]来说,a就是数组a的地址,但是在输出字符数组时,却有特殊的地方:
#include
usingnamespacestd;
voidmain()
{
chara[]="Howayou!
";
cout<<"a="< charc[]={‘H’,'o’,'w’,’‘,’a',’‘,’y',’o',’u',’!
',’\0′};
cout<<"c="< intb[]={1,2,3,4,5,6,7,8,9};
cout<<"b="<
}
对常规数组来说,输出要使用循环。
但是在上例中,输出字符数组(字符串)时,使用cout可以直接输出。
运行结果:
a=Howayou!
c=Howa