bool参数赋值的区别,求告知

bool state=true;
if(a!=b)
{
stata=false;
}

bool state=true;
if(a!=b)
{
stata=state && false;
}
的区别是什么

没有区别。

在编译器不优化的情况下,前者只有一个赋值,后者有一个逻辑运算外加一个赋值运算。
但是注意,编译器肯定会对下面的代码优化,因为&&false是常量,编译器会短路表达式并且编译出state=false。
下面的代码既不高效也不易懂。

bool state=true;
int sum=0;
if(a!=b)
{
stata=false;
sum++;
}

bool state=true;
int sum=0;
if(a!=b)
{
stata=state && false;
sum++;
}
那这样有什么区别吗?第一种是我写的,第二种是我师父改的,我是在不明白改成这样有什么区别

第一个是赋值,第二个是运算可以这么理解