全部博文(1293)
分类: C/C++
2011-04-24 15:44:59
说明:如下都是运行在32位平台上,默认4字节对齐方式。
1 、char *p1=“HELLO”; int p2[100];
sizeof(p1) = ___, sizeof(p2) = ___
A) 1 4 B)1 400 C)4 4 D)4 400
2、struct ss { char a;
short b;
int c;};
问:sizeof(ss)=____
A)7 B)8 C)12 D)16
3、#define MM(x) x*(x-1)
若设 a=2,b=1;则MM(1+a+b)=____
A)5 B)6 C)10 D)12
解答:
1、答案:D
分析:32位平台指针变量的长度是4字节,整形数组的大小=数组长度*sizeof(int)。
2、答案:B
分析:本题考察的是字节对齐的知识。默认4字节对齐,char是1字节对齐,short是2字节对齐,int是4字节对齐,注意空洞,还有总的大小必须是4的整数倍。
3、答案:B
分析:很容易错在D,注意宏函数的括号问题。MM(1+a+b)= 1+a+b*(1+a+b-1)=1+2+1*3=6