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
关注公众号:
微信赞赏
支付宝赞赏