永发信息网

C中,字符串的长度和占用的存储字节有什么区别?

答案:1  悬赏:70  手机版
解决时间 2021-02-10 09:47
C中,字符串的长度和占用的存储字节有什么区别?
最佳答案
长度是字符串的字符数,比如:

char* p = "1234";

那么p的字符数就是4,4就是其长度,也可以理解为strlen和wcslen对字符串的返回值。

占用存储字节是该字符串在内存中所占用的存储空间的表示,还是上面那个字符串,其占用存储空间就是5,包括一个空字节,所以其占用字节数为5。因此C风格ASCII字符串的长度和其字符数是不同的,除了C风格字符串(以空字节结尾的字符串),其他ASCII字符串也有长度和占用存储空间相同的情况,比如STL中的string其内存占用空间就和字符长度相同,因为它不是用空字符来标识字符串结尾的。

所以对于ASCII字符串,其长度和所占字节数可能相同。

而对于宽字符wchar_t或unicode,其字符长度肯定和所占字节数不同。

wchar_t s[] = L"1234";

sizeof(s)是10,wcslen(s)是4。

知道了吧,简单点这2个概念也可以理解为sizeof和strlen或wcslen返回的长度。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国工商银行(苏州竹辉分理处)地址在什么地方
马路旁每两根电线杆间的距离是60m,坐在汽车
鼎鑫饭店地址有知道的么?有点事想过去
中国邮政储蓄银行(彩香二村营业所)地址在什么
通天教主有孙悟空厉害吗 如果有的话 那为什么
南头到深圳少年儿童图书馆怎么坐车
写出图示各梁的剪力方程和弯矩方程,并作剪力
停车场(金雄鹰宾馆西北)地址在什么地方,我要
好想和万绮雯睡一次
恒丰银行(人民路社区支行)地址在什么地方,想
玉林市樱跃电动车业有限公司地址在什么地方,
玩逆战的人多吗
松红梅什么时候开花 松红梅的花期
中国工商银行(苏州白塔路支行)地址有知道的么
三星sf-565pr一体机传真功能怎么使用
推荐资讯
顺意冷面城地址在什么地方,想过去办事
10*7.2*4高冰玻璃蛋,2.16克,有证书。大约市
中国建设银行银川兴庆府支行我想知道这个在什
怎么查询挂号信单号
绩效专员应具备的能力及任职条件有哪些
关于东航安全员近视手术是在体检前还是体检后
饿了么商家怎么加入
博雅双语幼儿园(邢台威县)地址在什么地方,想
请问金华婺东区附近哪里有卖seven<七星>和bla
遵义红军山怎么走?
新中源陶瓷衡南县旗舰店怎么去啊,有知道地址
农村42个大棚需要多大容量的变压器
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?