C语言a=011,b=++a;为什么b的值是10
展开全部
a=011, b=++a; 运行后b=10。解释如下:
该语句是逗号表达式,计算过程分2步:
1、计算a=011,由于011是以0开头,所以表示一个8进制的数,对应10进制为9,所以a=9;
2、计算b=++a,由于++是前置,所以等价于a=a+1; b=a; 即b=9+1=10。所以最后b=10
注:C语言中默认以数字0开头,并且后面的数字在0~7范围内的数为8进制数。
该语句是逗号表达式,计算过程分2步:
1、计算a=011,由于011是以0开头,所以表示一个8进制的数,对应10进制为9,所以a=9;
2、计算b=++a,由于++是前置,所以等价于a=a+1; b=a; 即b=9+1=10。所以最后b=10
注:C语言中默认以数字0开头,并且后面的数字在0~7范围内的数为8进制数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=011; 一行以零开头,被认为是八进制的11,等于十进制的9。
当a=9时 b=++a; b 就应该等于10了。
当a=9时 b=++a; b 就应该等于10了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询