深入理解指针(5)

深入理解指针(5)

sizeof是操作符,不是函数

十六进制内存中00有\0的作用

Screenshot_20241122_085706_tv_danmaku_bili_UnitedBizDetailsActivity_edit_205874680499189

 下面这个是不行的,因为arr里面存的整型,不是字符串

Screenshot_20241122_090018_tv_danmaku_bili_UnitedBizDetailsActivity_edit_205891785117729

地址的长度也是4个或8个字节(看是X64还是X86)

例题:

在这里插入图片描述

C语言中,一个字符占用一个字节

Screenshot_20241123_090459_tv_danmaku_bilibilihd_CheeseDetailActivityV3_edit_216336519569581

Screenshot_20241123_101409_tv_danmaku_bilibilihd_CheeseDetailActivityV3_edit_218579931984792

Screenshot_20241123_102548_tv_danmaku_bilibilihd_CheeseDetailActivityV3_edit_219322115637452

Screenshot_20241123_104118_tv_danmaku_bilibilihd_CheeseDetailActivityV3_edit_220519506126446

p为地址时,p[i]和*(p+i)一般在何时何地均等价

未说明时,问是多少个字节,则答在X86环境(即32位的)下的(比如:问int类型占多少个字节)

Screenshot_20241123_142511_tv_danmaku_bilibilihd_CheeseDetailActivityV3_edit_224836058303473

数据存到内存里面怎么拿出来的问题:

比如:在printf中-4的打印 用%d打印时,会将补码转换成原码再转化为10进制打印出来 用%p打印时,因为地址是无符号整数,所以直接把补码按照16进制打印出来(补码的每四个数看做2进制,用此变为16进制)

%s打印字符串时,需要的就是地址来去打印

一个*不能一步到位直接解引用到最最最初(有个地方好像记错了)

内存空间的画法

Screenshot_20241123_160915_tv_danmaku_bilibilihd_CheeseDetailActivityV3_edit_232502553535622

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值