当前位置:系统粉 > 电脑问答 > 其他问答 > c++ 共用体地址问题

c++ 共用体地址问题

提问者:雪樱恨  |  浏览 次  |  提问时间:2017-02-01  |  回答数量:7

c++ 共用体地址问题int main (void){union{char i[2];short int k;}r;r.i[0]=0;r.i[1]=2;cout<<r.k;return 0;}该程序结果为512,请问是怎么来的呢??如何取得i或者k的地址呢?我还是没搞清楚~谢谢

已有7条答案
暮色惊心

暮色惊心

回答数:30  |  被采纳数:134

2017-02-01 18:55:28
r.k为2字节宽,与r.i[]占据相同的内存单元,r.i[0]为r.k的低字节,r.i[1]为高字节,所以有结果r.k=2*256+0=512
取i的地址用r.i即可,取k的地址用&r.k
赞 3
这娃爱猫

这娃爱猫

回答数:146  |  被采纳数:9

2017-02-01 22:36:19
由于低字节在前,高字节在后,所以r.i[0]和r.i[1]组成的16进制值为:0x200,不就是512吗?
赞 14
laidingwei

laidingwei

回答数:209  |  被采纳数:50

2017-02-01 19:26:45
256从哪里来的呢??0X200又怎么来的啊.......能不能再详细的说下,谢谢了

内存单元是16进制组成的吗(0x200)?小弟是新手,麻烦大家了
赞 20
大织男尼桑w

大织男尼桑w

回答数:126  |  被采纳数:100

2017-02-01 23:09:35
http://bbs.cfanclub/thread-284576-1-1.html
赞 12
深海尋人深海遇

深海尋人深海遇

回答数:143  |  被采纳数:71

2017-02-02 05:02:13
只知道OX(高字节)(低字节).....上面写的2*256还是不明白....
看来前面有地方没理解好
赞 14
lzq635243502

lzq635243502

回答数:6  |  被采纳数:3

2017-02-02 03:42:27
16进制的0x200就是十进制的512呀,两个字节的内容分别是00 02
赞 0
wc8888886

wc8888886

回答数:67  |  被采纳数:125

2017-02-02 13:58:12
啊...谢谢,脑袋突然卡住了.....

6楼已解决
赞 6
解决方法
  • Win7系统完美解决IP地址有冲突问题

    Win7系统完美解决IP地址有冲突问题

    关于在Win7旗舰版电脑IP地址与其他电脑有冲突的解决方法总是能见到很多用户为此烦恼。当用户使用电脑的时候,有时会提示IP地址有冲突,无法上网的问题确实让人...

  • Windows XP系统中查找MAC地址问题

    Windows XP系统中查找MAC地址问题

      问:我原来使用的是Windows 98,里面提供了一个叫Winipcfg.exe的工具,它可以方便地检查IP网络详细信息,我在升级到了Windows XP后却无法找到这...

  • ip地址出现异常怎么办 怎么解决电脑一直获取网络地址的问题

    ip地址出现异常怎么办 怎么解决电脑一直获取网络地址的问题

    今天给大家带来ip地址出现异常怎么办,怎么解决电脑一直获取网络地址的问题,让您轻松解决问题。网络状态总是正在获取网络地址怎么解决 如何解决网络IP地址配置异常第一步.DHCP ...

  • win8旗舰版计算机如何共享打印机地址

    win8旗舰版计算机如何共享打印机地址

    win8旗舰版电脑间需要设置打印机共享,这样才能让多人使用打印机,那么win8旗舰版计算机如何共享打印机地址?需要怎么设置?想知道具体操作步骤的用户可以参考以下的教程。win8计算...

版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航