C语言结构体问题
main(){union{inta[2];longb;charc[4];}s;s.a[0]=0x39;s.a[1]=0x38;printf("%lx\n",s.b);pr...
main()
{ union { int a[2];
long b;
char c[4];
}s;
s.a[0]=0x39;
s.a[1]=0x38;
printf("%lx\n",s.b);
printf("%c\n",s.c[0]);
}
为什么等于380039 9? 展开
{ union { int a[2];
long b;
char c[4];
}s;
s.a[0]=0x39;
s.a[1]=0x38;
printf("%lx\n",s.b);
printf("%c\n",s.c[0]);
}
为什么等于380039 9? 展开
5个回答
展开全部
你这个不是计算机的C编译器吧……int型只有2字节。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注意typedef的用法,PRO表示的应是结构体类型,而不是它的变量。结构体数组放在main()中和放在main()外的区别是,前者可以在其它文件中通过extern引用,而后者不能。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
理解有误区,这是一个定义一个结构体,将结构体命名为PRO,typedef是命名语句,也就是说PRO是一个自定义结构体类型名,而不是一个对象,不是变量,sell是变量,是一个PRO类型的数组变量,是一组PRO对象,还有问题可追问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询