“Devil组”引证GPT后的撰写:
这段代码中,z的赋值操作 z = x++, y++, ++y; 会被按照优先级顺序进行计算,具体如下:
由于逗号运算符优先级较低,所以先计算 x++ ,此时 x 的值变为 2,z 的值为 1。
接着计算 , 运算符,逗号运算符会忽略左边的表达式结果,直接计算右边的表达式,所以这里直接计算 y++,此时 y 的值变为 2,z 的值仍为 1。
最后计算 ++y,此时 y 的值变为 3,z 的值仍为 1。
因此,最终输出结果为 x=2,y=3,z=1。
逗号表达式 的值 为 最后一个表达式的值, 每个表达式 依此从左往右计算
z = x++,y++,++y; // 这里 其实有个注意点, 逗号表达式的优先级最低, 所以 先算的 z = x++ , 最终 z = 1
如果是下面这样,就先算逗号里的
z = (x++,y++,++y); // z = 3