C语言内存分配详解16


  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 <<endl;

   cout << aa.b2 <<endl;

  }

输出结果是多少?

  答案:-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是有正

负之分

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《C语言内存分配详解16
本文地址:http://www.xiupu.net/archives-660.html
关注公众号:嗅谱网

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!