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++;
}
那这样有什么区别吗?第一种是我写的,第二种是我师父改的,我是在不明白改成这样有什么区别
第一个是赋值,第二个是运算可以这么理解