C语言 关于自增运算符在变量和变量数组下运算结果不同的问题

图片说明

如图所示, 一个用普通整型变量运算,一个用整型数组运算,结果大相径庭。请问为什么?

多个++同一个变量,这个是未定义行为(undefined behavior),未定义行为的结果是不受保证的,甚至你换一个编译器,结果都可能不同

可以看一下对应的汇编代码,看编译器是怎么处理的

同一个表达式式中,对同一变量使用多个++操作,不同的编译器的处理时不一样的,不要这么写。++应分开放到不同表达式中

int a = (++k3);
int b = (++k3);
int c = (++k3);
Result_k3 = a+b+c;