若a是int型变量,则表达式(a=4*5,a*2),a+6的值为多少您的回答是:这是个逗号表达式,是一个表达式逗号表达式的值为逗号右边的值,如(a,b)的值即为b的值,逗号的运算优先级最低(a=4*5,a*2),a+6的值即为a+6的值,即为26但是()里逗号右边的值不是a*2吗,前面算出a=4*5=20,那a*2的值不就应该是40了吗,然后a+6的值就变成46了,标准答案是26,我这种想法到底哪里错了?

问题描述:

若a是int型变量,则表达式(a=4*5,a*2),a+6的值为多少
您的回答是:这是个逗号表达式,是一个表达式
逗号表达式的值为逗号右边的值,如(a,b)的值即为b的值,逗号的运算优先级最低
(a=4*5,a*2),a+6的值即为a+6的值,即为26
但是()里逗号右边的值不是a*2吗,前面算出a=4*5=20,那a*2的值不就应该是40了吗,然后a+6的值就变成46了,标准答案是26,我这种想法到底哪里错了?

(a=4*5,a*2),a+6,括号优先级最高先算括号里,括号里a=4*5=20即是(20,20*2),20+6所以结果26你的想法错在括号里(a=4*5,a*2)右边只是a*2但是没有再赋值给任何变量如果括号里是
(a=4*5,a=a*2)就……明白了吧