设所有变量均是int类型,运行完表达式((a=4*6,a-3),a+22)后a的值为() a.46 b.43 c.0 d.20

问题描述:

设所有变量均是int类型,运行完表达式((a=4*6,a-3),a+22)后a的值为() a.46 b.43 c.0 d.20
且说明为什么?

结果应该是A.46,分析:表达式由两个逗号表达式组成,逗号表达式由左向右执行,首先是 a=4*6 ,即a=24,然后 a-3 结果是21,但是a的值没有改变,仍然是24,第一个逗号表达式结束,此时计算a+22,结果是46 ,由于a+22是逗号表达式的末尾,因此整个表达式的值就是最后这个表达式的值即46首先是 a=4*6即a=24,然后 a-3 结果是21,但是a的值没有改变,仍然是24,这个为什么?不是21么a-3只是说用用24-3,并没有把结果保存到a中啊,你说的那种情况是这样的 a=a-3,这样a的值才会变化。