开源操作系统社区
首页
训练营
明星学员
共建单位
项目实习
问答论坛
发布岗位
登录
关于(uint32_t *)ebp + 2;与((uint32_t *)ebp)[2];的区别(lab1练习5)
匿名
2023/07/31 19:52:02提问
lab1
student
217
(uint32_t *)ebp + 2;与((uint32_t *)ebp)[2];的区别 是什么?
前者是取得地址,ebp地址+8的地址(ebp+4为返回地址,ebp+8为参数1的地址),
注,当前指针的大小为4个字节,因此
(uint32_t*)ebp+2
实际上是 ebp地址+4*2的地址。
后者是取得地址存储的值(解指针)
即(uint32_t *)ebp + 2地址存放的值
相当于*((uint32_t *)ebp + 2)
回答(1)
登 录
即可发布评论
推荐问答
Simple Empty
暂无数据