首页 > 解决方案 > 有人可以向我解释一下输出吗?

问题描述

好的,所以当我将“=”更改为“”时if( (i = 4) || (i = 5) )==它会返回 hello world。但是当“ =”保持在“=”时,输出什么都没有。它没有给我语法错误,因为您需要将“ ==”放在 if 中

void f( int i )
 {
 if( (i = 4) || (i = 5) ) return;
 cout << "hello world\n" ;
 }

 int main()
 {
 f( 3 );
 f( 4 );
 f( 5 );
 return 0;
 }

所以当代码为“ if( (i = 4) || (i = 5) )”时,输出什么都没有(因为屏幕是空的)。当代码为“ if( (i == 4) || (i == 5) )”时,输出为hello world

我的主要问题是:为什么输出会有所不同===但不会给我语法错误?

标签: c++c++11

解决方案


正如@Carcigenicate 所说,==并且=是不同的。

==用于比较,=用于分配。


推荐阅读