struct temp{ short a; char b; char c; long d; char e; int f; };
在32位机器上sizeof的大小是()
A. 16 B. 24 C. 13 D. 15
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
short a; 2位 char b; 1位,前面的2是1的倍数,所以不用对齐了,就是3 char c; 1位,前面的3是1的倍数,不用对齐,就是4 long d; 4位,前面的4刚好是4的倍数,不用对齐,就是8 char e; 1位,前面的8是1的倍数,不用对齐,就是9 int f; 4位,前面的9不是4的倍数,9至少变12才是4的倍数,也就是12+4=16
short 32位占2字节,char 1字节,long和int 就是4,4(2+1+1)+ 4 +4(1)+4=16
#include<stdio.h> struct temp{ short a; char b; char c; long d; char e; int f; }; int main(){ printf("%lu\n",sizeof(struct temp)); }
输出结果是24,不是16,另外16倒着推也推不出来
18269597545 回复 linanana: 你这代码运行也是16啵
A
解析:
|1Byt...
登录后提交答案