鱼C论坛

 找回密码
 立即注册
查看: 1014|回复: 6

这个为啥是18个字节啊

[复制链接]
发表于 2023-11-9 17:23:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这18个字节分别是I,L,O,V,E,F,I,S,H,C,.,C,O,M,!,",",/0,吗
QQ图片20231109172031.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-9 17:23:46 | 显示全部楼层
这个字符串包含了18个字节。每个字符在内存中占用一个字节的空间。根据ASCII编码规则,英文字母、数字和一些特殊字符都被编码为一个字节。所以,这个字符串中的每个字符都占用一个字节的空间。

具体来说,I、L、O、V、E、F、I、S、H、C、.、C、O、M、!、"、"、/0 这些字符都是ASCII字符,每个字符占用一个字节的空间。而中文字符通常使用Unicode编码,一个中文字符通常占用两个字节的空间。所以,这个字符串中的各个字符加起来总共占用了18个字节的空间。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-9 18:28:37 | 显示全部楼层
本帖最后由 虚无→与→飘渺 于 2023-11-9 18:29 编辑

双引号“”是字符串起止标志,不包含在字符串内容里,自然也就不占用内存空间,但是字符串中的两个空格各占用1个字节,所以一共是18个字节
即:I---空格---l---o---v---e---空格---F---i---s---h---C---.---c---o---m---!---\0
共18个字节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-9 19:42:21 | 显示全部楼层
       C 语言用于标识一个字符串结束的唯一标志是字符串末尾处的字节 '\0',就是说,C 语言的每一个字符串都一定有一个被 "额外" 附加到字符串末尾的特殊字符 '\0'。
       没错,字符串 "I love FishC.com!" 的确只有 17 个字符,但是,这个字符串必须要有一个结束字符 '\0' 也需要占用一个字节,所以,这个字符串的确占用的是 18 个字节。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-9 20:52:44 | 显示全部楼层
看图:
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-10 14:35:18 | 显示全部楼层
4 楼 正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-10 14:57:21 | 显示全部楼层
学到后面会明白,要分清是sizeof(尺寸,即需要挖坑的数量) 还是strlen(长度)。sizeof是考虑了最后的\0,表示字符串的结束; strlen不包括\0

第一次解答问题希望能给个最佳答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 11:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表