Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12405084
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: 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

 

阅读(1392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~