我有一个下面的代码可将b的值打印为20,但我无法理解该代码背后的逻辑或求值顺序。
我期望它应该打印23。
我正在使用具有gcc 6.3编译器版本的在线代码厨师IDE
#include <stdio.h>
int main(void) {
int array[] = {12, 10, 23, 25};
int *ptr = array;
printf("a: %d \n", *ptr);
int b = ++*ptr+*++ptr; // 13 + 10 -- 10 + 10
printf("b: %d \n", b);
printf("a: %d \n", *ptr);
return 0;
}