If语句中的判断部分中有赋值、递增、递减,那么会被执行吗

int a = 0; if(++a >5) cout<<a;这里判断语句为false,那么a还会+1吗?是不是说判断语句不管是true还是false,里面的赋值、递增、递减都被执行了,变量的值都被修改了?

根据运算符优先级,if语句会先执行++a,使得a的值加1,结果为1
然后再判断a>5,由于a值为1,所以if条件不成立
综合以上,对于你的提问,结果是if语句必须先执行后才能确定是true还是false,明白这个顺序你应该就知道答案了

++a >5这条语句的a会加一,要a加一以后才会判断条件,++是单目运算符,优先级比关系运算符高。

if(++a >5)先执行++a,a=1,然后执行if(a>5),a=1,a>5不成立,所以cout << a不执行

1.赋值、递增、递减只要参与了逻辑表达式的计算,都会执行
2.如果有多条赋值、递增、递减参与逻辑表达式,但由于三目运算符(条件预算符)或者是短路逻辑判断会只执行对应的值改变
举个例子,下面的代码只会输出一行02

    int a=1,b=2,c=3;
    if (--a && b++) 
        cout << a << b << endl;
    cout << a << b << endl;