野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 248426|回复: 815

【每日一题讲解】结构体的元素偏移问题

  [复制链接]
发表于 2013-11-16 09:46:29 | 显示全部楼层 |阅读模式
  1. //若 int 占 2 个字节,char 占 1 个字节,float 占 4 个字节,则定义如下:
  2. struct stu
  3. {
  4.   union{
  5.     char bj[5];
  6.     int bh[2];
  7.   }class;<br>
  8.   char xm[8];
  9.   float cj;
  10. }xc;
  11. //若 xc 地址为0x1000 则求 &xm[0] 的值?

  12. //A.0x1005
  13. //B.0x1006
  14. //C.0x1008
  15. //D.0x100A
复制代码
请回答问题后再看答案哦,否则 每日一题 就没有意义了。
答错的,讲一下 为什么 会答错 呗!答案与讲解 回复后即可看到  

昨天的题目,错误率挺高啊,大家得多补充学习:
QQ截图20131116093037.jpg

今天的题目讲解:
今天的题目,其实就是昨天的题目稍微改一下,如果昨天好好看过解答,今天就不会答错了。
【每日一题讲解】结构体的内存大小问题 - 软件设计区 - 野火初学123论坛 http://www.firebbs.cn/forum.php?mod=viewthread&tid=1111

大家从上面那帖子里看答案即可,关键的一点是 算出 联合体的 大小为 6,即 XM[0] 的位置 偏移为 6,从而得到
XM[0] 的地址 = 0x1000  + 6 = 0x1006



回复

使用道具 举报

发表于 2013-11-16 09:49:47 | 显示全部楼层
没看完~~~~~~ 先顶,好同志
回复 支持 反对

使用道具 举报

发表于 2013-11-16 11:33:05 | 显示全部楼层
c  抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-11-16 11:33:25 | 显示全部楼层
这是什么东东啊
回复 支持 反对

使用道具 举报

发表于 2013-11-16 11:34:25 | 显示全部楼层
为什么联合体的大小是6不是8???我昨天也算的是吧。,你没给我解释啊
回复 支持 反对

使用道具 举报

发表于 2013-11-16 11:43:27 | 显示全部楼层
火弟 发表于 2013-11-16 11:34
为什么联合体的大小是6不是8???我昨天也算的是吧。,你没给我解释啊

哦,我知道了,,sorry 哈哈

联合体的大小是最大的那个变量占的字节空间 嘿嘿
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-16 11:59:54 | 显示全部楼层
火弟 发表于 2013-11-16 11:43
哦,我知道了,,sorry 哈哈

联合体的大小是最大的那个变量占的字节空间 嘿嘿

你懂的    ..........................                                             
回复 支持 反对

使用道具 举报

发表于 2013-11-16 12:05:47 | 显示全部楼层
火弟 发表于 2013-11-16 11:43
哦,我知道了,,sorry 哈哈

联合体的大小是最大的那个变量占的字节空间 嘿嘿

不完全对,还得考虑对齐方式!
回复 支持 反对

使用道具 举报

发表于 2013-11-16 12:10:52 | 显示全部楼层
为什么偏移量不是8呢?
回复 支持 反对

使用道具 举报

发表于 2013-11-16 12:30:07 | 显示全部楼层
山外メ雲ジ 发表于 2013-11-16 12:05
不完全对,还得考虑对齐方式!

嗯嗯。。这个我知道,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2013-11-16 12:30:38 | 显示全部楼层
fire 发表于 2013-11-16 11:59
你懂的    ..........................

恶意灌水。。。好搞笑哦
回复 支持 反对

使用道具 举报

发表于 2013-11-16 16:09:23 | 显示全部楼层
做错了TOT@@
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-16 16:31:00 | 显示全部楼层
苹果鱼吉 发表于 2013-11-16 12:10
为什么偏移量不是8呢?

为啥是 8?
char t[8]; 这样的数组就 8对齐?
回复 支持 反对

使用道具 举报

发表于 2013-11-16 17:59:02 | 显示全部楼层
fire 发表于 2013-11-16 16:31
为啥是 8?
char t[8]; 这样的数组就 8对齐?

想错了,脑子短路了好搞笑哦
回复 支持 反对

使用道具 举报

发表于 2013-11-16 18:51:32 | 显示全部楼层
真的不懂。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 18:51:58 | 显示全部楼层
真的不懂。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 19:33:23 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-16 19:46:36 | 显示全部楼层
来看看答案
回复 支持 反对

使用道具 举报

发表于 2013-11-16 20:01:00 | 显示全部楼层
不是5+8+4=17字节吗
回复 支持 反对

使用道具 举报

发表于 2013-11-16 20:49:48 | 显示全部楼层
选了C ,来看答案的。。。。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 21:25:28 | 显示全部楼层
看看答案
回复 支持 反对

使用道具 举报

发表于 2013-11-16 22:37:19 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-11-16 22:46:20 | 显示全部楼层
5+8+4?看看看
回复 支持 反对

使用道具 举报

发表于 2013-11-16 23:06:05 | 显示全部楼层
考的是字节对齐的问题呃
回复 支持 反对

使用道具 举报

发表于 2013-11-16 23:57:40 | 显示全部楼层
嘻嘻,火哥的题目,真的不容易做啊
回复 支持 反对

使用道具 举报

发表于 2013-11-21 00:53:27 | 显示全部楼层
我觉得是选择B
回复 支持 反对

使用道具 举报

发表于 2013-11-22 11:32:23 | 显示全部楼层
看一看好搞笑哦
回复 支持 反对

使用道具 举报

发表于 2013-11-24 09:53:39 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-26 10:48:56 | 显示全部楼层
来看下解释,看看是不是还和对齐有关
回复 支持 反对

使用道具 举报

发表于 2013-11-26 16:50:23 | 显示全部楼层
不懂,来学习..
回复 支持 反对

使用道具 举报

发表于 2013-11-30 20:37:16 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-15 18:03:07 | 显示全部楼层
加4吧抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-12-20 12:30:14 | 显示全部楼层
选择B答案 ~
回复 支持 反对

使用道具 举报

发表于 2013-12-21 14:37:22 | 显示全部楼层
看来我的c真的很屎
回复 支持 反对

使用道具 举报

发表于 2013-12-25 14:52:03 | 显示全部楼层

嘻嘻,火哥的题目,真的不容易做啊
回复 支持 反对

使用道具 举报

发表于 2013-12-26 15:31:53 | 显示全部楼层
完全不懂走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-12-26 17:45:02 | 显示全部楼层
不太懂,看看,学习学习强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2013-12-26 18:09:55 | 显示全部楼层
//A.0x1005
回复 支持 反对

使用道具 举报

发表于 2013-12-27 21:34:55 | 显示全部楼层
CCCCCCCCCCCCCCC
回复 支持 反对

使用道具 举报

发表于 2014-1-1 16:44:44 | 显示全部楼层
抢沙发~给哥们顶一个
回复 支持 反对

使用道具 举报

发表于 2014-1-1 16:45:59 | 显示全部楼层
pizhihui 发表于 2014-1-1 16:44
抢沙发~给哥们顶一个

我也 来顶顶

推荐 用 客户端 论坛 交流,这样 大家 回复的速度 快很多, 实时性 比较好,大家不用 老是盯着 论坛,有 消息的时候会主动 通知你的。


野火在线客户端——最好用的技术交流平台
http://www.firebbs.cn/forum.php?mod=viewthread&tid=1409
回复 支持 反对

使用道具 举报

发表于 2014-1-5 10:37:54 | 显示全部楼层
学习一下。。。
回复 支持 反对

使用道具 举报

发表于 2014-1-5 10:49:04 | 显示全部楼层
xc是结构体的起始地址吗?
回复 支持 反对

使用道具 举报

发表于 2014-1-5 13:13:05 | 显示全部楼层
看看抢沙发~给哥们顶一个
回复 支持 反对

使用道具 举报

发表于 2014-1-5 21:42:35 | 显示全部楼层
有没搞错这还要隐藏啊!!!!
回复 支持 反对

使用道具 举报

发表于 2014-1-6 20:41:16 | 显示全部楼层
不知道答案,题出得不错
回复 支持 反对

使用道具 举报

发表于 2014-1-7 11:38:12 | 显示全部楼层
//B.0x1006
回复 支持 反对

使用道具 举报

发表于 2014-1-7 19:56:51 | 显示全部楼层
B.0x1006  看答案罗
回复 支持 反对

使用道具 举报

发表于 2014-1-23 00:06:53 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-1-23 23:24:10 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 11:30 , Processed in 0.046458 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表