c语言题目解答


  typedef struct AA

  int b1:5;

  int b2:2;

  }AA;

  void main()

  AA aa;

  char cc[100];

  strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");

  memcpy(&aa,cc,sizeof(AA));

  cout << aa.b1 <

  cout << aa.b2 <

  答案是 -16和1

  首先sizeof(AA)的大小为4,b1和b2分别占5bit和2bit.

  经过strcpy和memcpy后,aa的4个字节所存放的值是:

  0,1,2,3的ASC码,即00110000,00110001,00110010,00110011

  所以,最后一步:显示的是这4个字节的前5位,和之后的2位

  分别为:10000,和01

  因为int是有正负之分  所以:答案是-16和1