首页>计算机等级考试>历年真题>正文
常见c++笔试题整理(含答案)

www.zige365.com 2010-7-13 14:03:04 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

21.
struct A
{
char t:4;
char k:4;
unsigned short i:8;
unsigned long m;
}
sizeof(A)=?
(不考虑边界对齐)

7

struct CELL             // Declare CELL bit field
{
   unsigned character : 8; // 00000000 ????????
   unsigned foreground : 3; // 00000??? 00000000
   unsigned intensity : 1; // 0000?000 00000000
   unsigned background : 3; // 0???0000 00000000
   unsigned blink      : 1; // ?0000000 00000000
} screen[25][80];       // Array of bit fields
二、位结构
   
位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构

比按位运算符更加方便。

   
位结构定义的一般形式为
:
     struct
位结构名
{
         
数据类型 变量名: 整型常数
;
         
数据类型 变量名: 整型常数
;
     }
位结构变量
;
   
其中: 数据类型必须是int(unsignedsigned)。 整型常数必须是非负的整

, 范围是0~15, 表示二进制位的个数, 即表示有多少位。

   
变量名是选择项, 可以不命名, 这样规定是为了排列需要。

   
例如: 下面定义了一个位结构。

     struct{
          unsigned incon: 8; /*incon
占用低字节的0~78
*/
          unsigned txcolor: 4;/*txcolor
占用高字节的0~3位共4
*/
          unsigned bgcolor: 3;/*bgcolor
占用高字节的4~6位共3
*/
          unsigned blink: 1; /*blink
占用高字节的第7
*/
     }ch;
   
位结构成员的访问与结构成员的访问相同。

   
例如: 访问上例位结构中的bgcolor成员可写成
:
      ch.bgcolor

   
注意
:
    1.
位结构中的成员可以定义为unsigned, 也可定义为signed, 但当成员长

度为1, 会被认为是unsigned类型。因为单个位不可能具有符号。

    2.
位结构中的成员不能使用数组和指针, 但位结构变量可以是数组和指针
,
如果是指针, 其成员访问方式同结构指针。

    3.
位结构总长度(位数), 是各个位成员定义的位数之和, 可以超过两个字

节。

    4.
位结构成员可以与其它结构成员一起使用。

   
例如
:
     struct info{
          char name[8];
          int age;
          struct addr address;
          float pay;
          unsigned state: 1;
          unsigned pay: 1;
          }workers;
   
上例的结构定义了关于一个工人的信息。其中有两个位结构成员, 每个位结

构成员只有一位

本新闻共15页,当前在第4页  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  

我要投稿 新闻来源: 编辑: 作者:
相关新闻