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

比如空字符串的长度是多少?占的存储字节是多少?... 比如空字符串的长度是多少?占的存储字节是多少? 展开
 我来答
foreverowes
推荐于2017-09-13 · TA获得超过1365个赞
知道答主
回答量:180
采纳率:0%
帮助的人:0
展开全部
长度是字符串的字符数,比如:

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返回的长度。
L_o_o_n_i_e
2007-09-10 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5194万
展开全部
字含敬符串的长度算到字符串结束符 "\0"为止。

空(空白键)字符串:
" " -- (strlen送返)长度1,占2个存储字节(包括"\0")
如果用了n个空白键,则长度为n,存简备储拦老毁字节为n+1, 因为最后有一个"\0"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
智趣派
2007-09-10 · TA获得超过3116个赞
知道小有建树答主
回答量:729
采纳率:100%
帮助的人:1004万
展开全部
长度就是字符串本身的长度,占带衫用存储空间就是字符串申弯碧请的空间
比如
char s[4];
strcpy(s,"ab");
那么它的蠢闹腔长度就是2字节,占用存储空间为4字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花径拾得野翁2
2007-09-11 · TA获得超过110个赞
知道答主
回答量:191
采纳率:0%
帮助的人:0
展开全部
我本来也想来回一帖,但是发现
上面几位的回答都很不错!赞一个!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式