C中的 \ 在sizeof的陷阱

1.函数sizeof的返回值陷阱
原本也是在qq群里看到的,然后自己就写一下看看
在这里插入图片描述

这是第一次写的代码,相比较而言删除了三个斜杠,然后返回串的内容,可以看出来每个字符占一个字节,然后最后空白一个字节
在这里插入图片描述
然后添加一个斜杠,可以在下面看到xa消失了,但是7和h之间换行了,然后准备试一下在数字之间加一下
在这里插入图片描述
在数字之间加了的话,直接出现了乱码
在这里插入图片描述
然后完全照题上在最开始加一个斜杠,看看返回值和返回字符串
在这里插入图片描述
解释:在这个字符串中,我一开始猜想问题出在 \ 上,给我这个想法的原因是 \n 的存在,
然后看第一个\a的意思是转义响铃字符,如果开声音的话,可以听到区别,运行的时候电脑会提示一声“嗡”,但是并不改变字符串的长度,
但是如果\与数字组合起来,就消去了两个字节,
第三个与第一个同理,为此我删去了第二个a,然后提示了报错,因为\不能单独与x组合,更确定了我的猜测,图如下,
所以原本10个字节,\与数字这组合消去两个,然后第三个斜杠中,\xa属于换行,总共消去了三个字节,,所以就字节长度减少了3,因为转义响铃字符不减少字节数,具体可参照\n
在这里插入图片描述以上猜想,若有错误,欢迎指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值