sizeof 和 strlen 有趣的操作

来源:互联网 发布:vscode好看的主题 编辑:程序博客网 时间:2024/06/16 15:10

两个数组:

char a[] = "1\023456";

char b[] = "1\000234";

问这两个数组的sizeof 和 strlen 各为多少?

结果: 

sizeof(a) = 6 ,strlen(a) = 5;

sizeof(b) = 6, strlen(b) =1;

分析:

因为\023 为8进制的转义字符,所以被当做一个字符处理,大小为1, 同样 \000也为八进制的转义字符它代表0,另外strlen和sizeof的计算方式不一样的,strlen遇到结束符'\0'计算结束,而且结束符不算在内,但是sizeof不一样,他就是计算整个数组占用了多少内存,包括结束符


0 0
原创粉丝点击