面试题:结构体

来源:互联网 发布:矩阵行列式的值怎么求 编辑:程序博客网 时间:2024/06/03 15:44

1、结构体中的冒号作用

下列程序输出结果多少?

#include <stdio.h>#include <string.h>typedef struct{int a:2;int b:2;int c:1;}test;int main(){test t;t.a=1;t.b=3;t.c=1;printf("%d\n%d\n%d\n",t.a,t.b,t.c);    return 0;}

结果:

1

-1

-1

分析:

int a:2表示a占2位,即二进制a=01,因此输出1

b占两位,b=11,但是由于是%d输出,所以先将b转化成32位int型,由于最高位是1,所以默认其为负数,所以扩展为11111111 11111111 11111111 11111111

即-1,c类似

0 0
原创粉丝点击