C++高手请进 逗号表达式(x = 4 * 5,x * 5),x + 25的值为( ).(A)25 (B)20 (C)100 (D)45

问题描述:

C++高手请进 逗号表达式(x = 4 * 5,x * 5),x + 25的值为( ).(A)25 (B)20 (C)100 (D)45
为什么我觉得是125啊!

你是不是觉得X*5后X应该等于100啊?
先把程序看清楚
你的表达式都没有赋值,我给一个相同格式的表达式吧(注意这里的ABCD代表的是表达式)
D=((A,B),C)这里的D你没有给出,A就是你的x = 4 * 5,B就是你的x * 5,C就是你的 x + 25
记住,逗号运算是从左住右一个表达式一个表达式运算,只是整个逗号表达式的结果等最后一个表达式结果,即D=C
按运算规则一一运算如下:
A表达式即x = 4 * 5运行后:X=20
B表达式即x * 5运行后:没有任何意义在这里,X值根本不会改变,只是(A,B)这个结果会等于100,但我们最后的结果是由C来定的,所以B的执行对程序中变量没有任何改变
C表达式即x+25运行后:那么最后结果就是D=((20,100),20+25)
显然最后结果就是 45