问题
单项选择题
有以下程序: #include <stdio.h> main() { int x, y, z; x=y=1; z=x++, y++, ++y; printf("%d, %d, %d\n", x, y, z); } 程序运行后的输出结果是______。
A.2, 3, 3
B.2, 3, 2
C.2, 3, 1
D.2, 2, 1
答案
参考答案:C
解析: z=x++, y++, ++y; ,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(z=x++), (y++), (++y)。然后从左向右先计算表达式z=x++,因为x++先使用后自增,所以z的值为1,x的值为2。再计算逗号表达式第二个表达式y++,此时y的值为2,最后计算第三个表达式++y,y的值为3。