#include <stdio.h> int main() { int z, x = 5, y = -10, a = 4, b = 2; z = x++ - --y * b / a; printf("%d\n", z); return 0; }
🍹解题步骤
int z, x = 5, y = -10, a = 4, b = 2; z = x++ - --y * b / a;step1.首先计算自增自减运算符,先计算 x++ 和 --y。
x++ :先使用x再对x进行++ ——>5 --y :先对y--再使用y的值 ——>-11step2. “ * ”、“ / ”位于优先级第三级,“ - ” 位于优先级第四级,所以先进行乘除运算,算术运算符采取左结合,因此自左向右计算🔢。
--y * b / a; -11 * 2 / 4; -22/4 == -5.5 但是由于采用“ / ",所以会趋零截断得到 -5 (--y * b / a )== -5step3.最后计算 “ - ”,采用左结合,自左向右计算。
先对x进行减法运算,再对x进行++ z = x++ - (--y * b / a); z = 5 -(-5)= 10 计算完z = 10后,再对x进行++,最后x的值为6