#include<stdio.h>typedef struct mm{unsigned a:5;unsigned b:6;}mm;int main(){mm as;as.a=120;as.b=119;printf("%lu",(int)as);//这里为什么偏要写成(int)&as,我用手机写的可能编译不好}
因为as是一个结构体,不重载运算符的情况下不能输出,也不可能从一个结构体类型转换成int,&as的作用是拿到as这个变量的地址,将地址转换成int类型再输出是可以的