首页 > 其他 > 详细

十六 推算程序结果 结构体指针

时间:2020-02-04 11:14:20      阅读:86      评论:0      收藏:0      [点我收藏+]

struct Test
{
int num;
char *pc;
short data;
char c[2];
short sa[4]
} *p;
假设p的值为0x10000,问
p+0x1=?
(unsigned long)p+0x1=?
(unsigned int*)p+0x1=?

解析:
p+1=sizeof(struct Test)
int num——4字节
char *pc——4字节(指针都是4Byte)
short data + char c[2]——4字节(字节对齐)
short sa[4]——8字节
总共20字节。
∴p+0x1=0x10014。


(unsigned long)p+0x1=0x10000+0x01=0x10001 (转换后的p不再是指针,单纯加1)

(unsigned int *)p+0x01=0x10000+4Bytes=0x10000+4=0x10004。

十六 推算程序结果 结构体指针

原文:https://www.cnblogs.com/wuqi1003/p/12258597.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!