位段字数不够水一点点

#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类型再输出是可以的