首页 > 试题广场 >

X定义如下,若存在X a; a.x=0x11223344;则

[不定项选择题]
X定义如下,若存在X a; a.x=0x11223344;则a.y[1]的值可能为(      )
union X{
    int x;
    char y[4]; 
};

  • 11
  • 22
  • 33
  • 44
0x表示16进制,若小端存储,低位存储在低地址,0x44是最低位,存放在最低的地址为y[0],所以y[1]=0x33。——————————————————————若大端存储,高位存储在低地址,0x11是最高位,存放在最低的地址为y[0],所以y[1]=0x22
编辑于 2019-02-28 08:36:09 回复(1)
大小端
发表于 2021-08-12 07:54:07 回复(0)
因为union是使用的共享内存,所以y[0]=0x11,y[1]=0x22,union大小可以按照大端模式和小端模式排序,所以还有可能为33
1)大端模式:

低地址 -----------------> 高地址
0x11  |  0x22  |  0x33  |  0x44
2)小端模式:

低地址 ------------------> 高地址
0x44  |  0x33  |  0x22  |  0x11
可见,大端模式和字符串的存储模式类似。
发表于 2023-09-01 00:15:03 回复(0)
没看懂上面的解释。。
发表于 2023-01-09 11:23:43 回复(1)
看大小端存储而定,多选又是第二号元素,那么分别从左从右数,取第二号就行了~
发表于 2021-05-01 21:18:21 回复(0)
超了脑袋短路把y1当开头了曰
发表于 2024-05-10 11:54:55 回复(0)