补补基础知识,关于字符串,字符数组,CString型字符串,strlen,sizeof

一段代码帮助记忆,如下:

CString str1="abcdef";

char str2[ ]={'a','b','c','d','e','f','\0'};

char str3[ ]="abcdef";

int len1=strlen(str1);

int size1=sizeof(str1);

int len2=strlen(str2);

int size2=sizeof(str2);

int len3=strlen(str3);

int size3=sizeof(str3);

CString str;

str.Format("%d  %d  %d  %d  %d  %d ",len1,size1,len2,size2,len3,size3);

AfxMessageBox(str);


结果是:6 4 6 7 6 7


注:如果str2数组里面没加\0,那么strlen将会不知道在哪里结束,得到的值也是一个随机值。sizeof得到的是所占内存的字节大小,而strlen得到的是字符个数。sizeof比strlen大1,说明字符串在内存里面在最后自动加上了\0 。第二个数字是4,说明sizeof得到的是CString对象所占内存大小。

发布了34 篇原创文章 · 获赞 23 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章