sizeof和strlen这两个东西老是搞不清楚.今天总结一下:
char ch[] = "abcde";
cout<<"sizeof(ch): "<<sizeof( ch )<<" strlen(ch): "<<strlen( ch );//6,5
cout<<"\n";
char ch1[100] = "abcde";
cout<<"sizeof(ch1): "<<sizeof( ch1 )<<" strlen(ch1): "<<strlen( ch1 );//100,5
cout<<"\n";
char* pch = "abcde";
cout<<"sizeof(pch): "<<sizeof( pch )<<" strlen(pch): "<<strlen( pch );//4,5
sizeof指的是实际占用的大小.(包括\0)
strlen则指的实际字符的大小(不包括\0)
而对数组取大小,其值不退化(成指针)
指针保持原样,(一般是int型)
如果是将字符数组传递给函数,然后获取sizeof的话,数组就退化成指针.
例如:
void fun( char ch[20] )
{
sizeof(ch) //4
}