i++,++i运算符

img


++i运算
x变成了4,y为什么不是4,而是3
++i运算
x变成了4,y为什么不是4,而是3

++i是先自加再赋值,这时候 ++x||++y 先执行 ++x,满足条件,所以就终止了,没有执行 ++y

这个主要是 || 的问题,如果换成 &&,输出就是 4 4 了

#include<stdio.h>
int main()
{
    int x=3, y =3;
    int t = ++x && ++y;
    printf("%d\t%d",x,y);
    return 0;
}

https://blog.csdn.net/L_J_Kin/article/details/124579197?spm=1001.2014.3001.5502

‖是或运算符,也叫简洁或运算符,它的条件只需要满足一个即可,如果左边满足了条件,则不会执行右边的表达式或者条件判断,如果左边条件判断错误,才会进行右边条件的判断或者表达式,可以参考java中的运算符

因为用了 或运算符 ++x 后就结束啦,根本执行不到 ++y 。