首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

union中的数组元素地址能取出来吗?解决思路

2012-05-22 
union中的数组元素地址能取出来吗?自己写的练习如下:C/C++ code#include iostreamusing namespace stdu

union中的数组元素地址能取出来吗?
自己写的练习如下:

C/C++ code
#include <iostream>using namespace std;union{    unsigned int a;    char b[5];}c,d;void main(void){    int i = 0;    c.a = 0x31313131;    for(i = 0; i <=4; i++)        cout << c.b[i] << "  " << &c.b[i] << endl;}

输出是:

1 1111
1 111
1 11
1 1

c.b[5]是0,输出为空,这个可以理解,但是为什么&c.b[i]的输出是一个位递减的1111呢?
请各位看看,谢谢^-^

[解决办法]
C++中的cout为了不让你操作地址,所以<<操作符对地址没有用,如果想输出地址瞧的话,这样用吧。
C/C++ code
void main(void){    int i = 0;    c.a = 0x31313131;    for(i = 0; i <=4; i++)    {        printf("%p  ",&c.b[i]);    }    //cout << c.b[i] << "  " << &c.b[i] << endl;} 

热点排行