大学C语言问题

执行“inta,b,c;a=b=c=1;++a||++b&&++c;"后,变量a,b,c的值分别为多少?是2,1,1吗?执行“inta,b,c;a=b=c=1;--b&&... 执行“int a,b,c;a=b=c=1;++a||++b&&++c;"后,变量a,b,c的值分别为多少?是2,1,1吗?
执行“int a,b,c;a=b=c=1;--b&&++c||++a;"后,变量a,b,c的值分别为多少?是2,0,1吗?求详细解答
&&的优先级不是高于||吗,所以应该先看&&吗?感觉不太对啊,各位大神求解救!!!
展开
 我来答
年华一梦到天边
推荐于2016-01-29 · TA获得超过106个赞
知道答主
回答量:205
采纳率:0%
帮助的人:67.8万
展开全部
首先执行++a,a变成2,++a表达式的值也是2,为逻辑真,于是逻辑或||右边的不再计算
这样执行后a=2,b=1, c = 1
你这个说法是没错,&&是高于||,但是C语言为了提高效率,所以并不是严格按优先级,如果按优先级则是先++了
追问
那第二问先执行--b,结果为0,假,所以逻辑短路,后面的也应该都不执行啊,可为什么a又变成2了呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式