x++/++x输出出现问题,当在输出时使用自增表达式时出现了一个奇怪的现象,就是输出x++确实是加一后的结果,但在之后输出x+y,x却并没有加一
#include <stdio.h>
int main(){
int x = 3, y = 3;
printf("%d,%d,%d\n",++x,x,x+y);
return 0;
}
输出结果为4,4,6
谁能讲解一下为什么第二次输出x时,明明x已经变成4了,为什么在最后一个表达式计算时x是3?
不可能输出6,可能是编译器本身问题。
应该是输出4 4 7
通常是这样子,所有++x先执行完后,所有的x都反复加1 ,所以++x后x为4,然后三个值分别是4,4,4+3