为什么sizeof(s)是40?为什么要除以4?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕查理 2018-05-08 12:02:39

您好,sizeof(s)计算的是指针数组的长度,结果为40。原因:char类型每个字符串是4,10个的时候是4*10,所以结果是40。因为是要算出有几个字符串,而不是整个指针数组的长度,所以除以4是因为是一个char类型是4个字节。结果得到10。祝学习愉快!

  • 提问者 Michelleqyh #1
    char类型每个字符不是1吗?怎么会是4了呢?
    2018-05-08 12:09:22
  • 提问者 Michelleqyh #2
    一个字符串不管有多少的字符都是占4个字节吗?这不符合内存实际吧?
    2018-05-08 12:11:23
  • 好帮手慕查理 回复 提问者 Michelleqyh #3
    您好,1个字符的时候是1是因为它的长度是1。sizeOf是一个获得某个对象变量或数据类型在内存中所占字节的函数,指针变量的sizeof值与指针所指的对象内容是没有任何关系的,因为同一类型的指针变量所占内存大小都是相等的。char类型是4个字节,应该是char类型的指针变量是4个字节。祝学习愉快!
    2018-05-08 14:12:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师