sizeof与strlen总结

来源:互联网 发布:js按钮取消点击事件 编辑:程序博客网 时间:2024/06/05 09:26

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

}

原创粉丝点击