C语言问题,求大神解决,我是小白,解释下原因,谢谢拉。
以下程序的输出结果是【】。main(){unsignedshorta=65536;intb;printf(""%d\n"",b=a);}"答案;0...
以下程序的输出结果是【 】。
main()
{
unsigned short a=65536 ;
int b ;
printf(""%d\n"",b=a) ;
}"
答案;0 展开
main()
{
unsigned short a=65536 ;
int b ;
printf(""%d\n"",b=a) ;
}"
答案;0 展开
3个回答
展开全部
unsigned short类型最大值为0xffff,也就是十进制的65535。再加1的话(65536)就溢出变成0了。这时a已经是0了,赋给b后再打印b,值自然也为0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=a这个语句是假的,该表达式的值即是0,故输出的结果便是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询