首页 > 试题广场 >

如下程序在x86_64位系统下运行,输出结果是() #inc

[单选题]

如下程序在x86_64位系统下运行,输出结果是()

#include <stdio.h>
union {
    int i;
    char x[2];
} a;
int main(int argc, char *argv[])
{
    a.x[0] = 10;
    a.x[1] =2;
    printf("%d",a.i);
    return 0;
}

  • 102
  • 210
  • 522
  • 答案全不对
这题我猜的,思路大概如下:
Union:为共用内存空间,存储时采取最大的类型存储,
此处char数组占2字节,int占4字节,故存储空间为4字节.
a.x[0] = 10   二进制表示: 00001010
a.x[1] = 2     二进制表示: 00000010
这里char数组占2字节,剩余的2字节用0填充(16个0),
故二进制表示:  000....(20个0)1000001010  十进制读取结果为522
发表于 2020-10-04 19:19:07 回复(0)