永发信息网

请教一个高深而基础的C问题

答案:1  悬赏:0  手机版
解决时间 2021-02-19 06:25
请教一个高深而基础的C问题
最佳答案
1. Windows的存储时little-endian的方式。低字节存在低地址。
比如32位数据0x11223344,在内存中从低地址从高地址存储为: 0x44 0x33 0x22 0x11.

2. union共用地址。假设"unit bt c", c的地址是0x00100000, 那么c的成员的地址为:
a : 0x00100000~0x00100003
b[0] : 0x00100000
b[1] : 0x00100001

3. int一般是32位的。

当"p->a = 7"的时候,内存中存储的数据为(从低地址到高地址addr0~addr3):
0x07 0x00 0x00 0x00
"p->b[0]=9;"把addr0的数据改为0x09.
"p->b[1]=8;"把addr1的数据改为0x08.
所以经过"f(&c)"之后数据变为 0x09 0x08 0x00 0x00.
所以c.a = 0x809, 也就是2057.

同理,当"p->a = -7"的时候,内存中存储的数据为:
( int -7 = 0xFFFFFFF9 )
0xF9 0xFF 0xFF 0xFF.
经过"f(&c)"之后变为:
0x09 0x08 0xFF 0xFF.
所以c.a = 0xFFFF0809, 也就是-63479.

另外: -7 + -7, 也就是0xFFFFFFF9 + 0xFFFFFFF9, 得到是0x1FFFFFFF2,但是因为32位的限制,截短为0xFFFFFFF2, 也就是-14.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
三尖头地址在哪,我要去那里办事
英语翻译翻译Good morning ,class!Now i will
怎么知道维修小米手机有没有被换零件
春园蔬菜店在什么地方啊,我要过去处理事情
孙权、孙策、孙坚和孙尚香有关系吗?
工资总额的项目不包括(  )。A.计件工资B.
百度发吧这个地址在什么地方,我要处理点事
TCP和UDP在传输报文时都是
填一本征集志愿后是否还能参加2本志愿录取
男孩子叫梓什么好听,有意思些
【记忆深处的笑意】记忆深处的笑意700字作文
《大秦帝国》大家都看了吧!里面那个壮观的咸
苹果iPhone6怎么备份?备份文件在哪
刀耕火耘是什么意思
没有学过英语音标,直接学新概念第一册能学会
推荐资讯
CoCo都可茶饮(黄海路乐购店)地址在哪,我要去
美的(NO.赣z0701)怎么去啊,有知道地址的么
句容市中医院我想知道这个在什么地方
福字五行
歌词中有“为什么我却一再沦落”的歌名是什么
宁朔北街这个地址在什么地方,我要处理点事
明南工艺广告标牌有限公司地址在什么地方,想
睡不着就默默念佛 这样会不会显不敬佛
凯铭农庄我想知道这个在什么地方
正宗杭州小笼包我想知道这个在什么地方
传奇广场停车场怎么样
从成都市公交职中到温江区国色天香如何赶公交
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?