c语言简单程序题把我搞糊涂了 求大佬解疑

这几题长得好像啊,我看都没看选了一样的答案 ,现在看看好蒙啊

这是考逗号表达式的优先级的,逗号表达式优先级最低。但它的运算是从左到右的。
第一张图片:根据优先级,先算++,但由于加加在后面,所以返回加加前的值,也就是7。再算等号,赋值给sum,此时sum就是7。然后轮到逗号,逗号之后是sum自加,得8。然后再到下一个num自加,但跟sum已经没有关系了。所以答案是8。
第二张图片:由于括号的原因,等号优先级低,所以先算括号里的值。先num++,得num为8,sum为7,再sum++,得num为8,sum为8,然后再++num,得sum为8,num为9。但对括号来说,只会返回最后一个,即num,也就是9。然后根据优先级,再算等号,把9赋值给sum,于是,赋值完sum就由8变成了9。
第三张图片同理,s只被赋值了一次,后面再也没有参加过运算,所以是7。追问

大佬好厉害蟹蟹

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-01
逗号表达式从左往右依次运算,结果取最后一个值
=(a,b,c......,n)
先计算a等式
后计算b等式
再计算c等式。。。。最后计算n等式。
n等式即作为最终等式结果。追问

嗯嗯明白!蟹蟹鸭

相似回答