请问谁可以再解释得比这个更清楚一点,我还是不太明白

img

img


可以帮我再解释通透一点吗,这个b++,++b还是不懂,最好可以结合例子,这里的解释我还是 不明白

int a=1;
int b=a++;
这种情况就是先使用a的值,那b就等于1,然后a再自增变成2。
int a=1;
int b=++a;
这种就是a先加1变成2,再赋值给b,b就等于2。
两种情况下a都会加一变成2,+在前就先加1再赋值给b,+在后就先赋值给b,他本身再加1(此时b与他无关了)。
不知道你能不能理解

x++出现的地方,x的内存地址不做改变,该语句执行完毕后才自加。好比领导告诉秘书,我要开会了,等这个会议结束了,你把稿子改一下再公布。
++x则是先自加,再参与计算。例如:我要开会了,你先把稿子改一下,我要在会上讲。
因此整个计算顺序是:
1、先执行 ++x ,x=4;
2、再执行 x+x, 结果为8;
3、最后x自加。
当然,这个代码实际上是不稳定的,不同编译器结果可能不同。

这种代码的行为是未定义的,在不同编译器上得到结果不一样,不要浪费时间在研究这种代码上

参考
https://en.cppreference.com/w/c/language/eval_order