sizeof()返回的是数组的空间大小,单位字节,包含空字符
- 由于char类型的大小为1字节,因此字符数组的空间大小就等于字符数组的长度
char a1[]={'C','+','+'};//无空字符
char a2[]={'C','+','+','\0'};//显式添加空字符
char a3[]="C++"; //隐式添加了空字符
cout<<sizeof(a1)<<endl;//3
cout<<sizeof(a2)<<endl;//4
cout<<sizeof(a3)<<endl;//4
char a4[6]="Daniel";//错误,没有空间存放空字符
- 如果是int类型的数组:(int类型大小为4字节)
int a4[15]={1,2,3,4,5};
cout<<sizeof(a4)<<endl;//60=15*4
strlen()返回的是字符数组中字符的长度,不包含空字符
char a3[]="C+++++"; //隐式添加了空字符
char a4[15]="C+++";//没有填满
cout<<sizeof(a3)<<endl;//7,包含空字符
cout<<sizeof(a4)<<endl;//15,而不是写入的字符串的长度
//如果要计算里面写入的字符串长度,使用strlen()
cout<<strlen(a4)<<endl;//4,不会将空字符计算在内