int x=2,y=3;
--x+y的值为多少?为4吗?
c语言数据结构 自减顺序
答案错了吧
--x不就是1吗?在加上y,好像就是4啊,为什么答案会是3啊?
在C语言中,自减操作符的操作顺序是自右向左的。也就是说,在一个表达式中,先执行自减操作,然后再进行其他操作。
对于x--或--x这样的自减操作,会先执行自减操作,再进行其他操作。
例如,给定两个变量x和y,分别初始化为2和3。下面是一个示例代码,展示了自减操作符的操作顺序:
#include <stdio.h>
int main() {
int x = 2;
int y = 3;
int z1 = x-- + y--; // 先执行x--,再执行y--
int z2 = --x + --y; // 先执行--x,再执行--y
printf("z1 = %d\n", z1); // 输出结果为5(2 + 3)
printf("z2 = %d\n", z2); // 输出结果为2(1 + 1)
return 0;
}
在上面的示例代码中,z1的计算结果为5,因为先执行了x--和y--,然后再进行加法操作。而z2的计算结果为2,因为先执行了--x和--y,然后再进行加法操作。
所以,在C语言中,自减操作符的操作顺序是自右向左的。