我对这个例子感到困惑:
int x = 5;
if (x==5) cout << x; // output 5
if (x==6) cout << x;
if (x=6) cout << x; // output 6
x = 0;
if (x=0) cout << x;
x = 5;
if (x-5) cout << x;
if (x-6) cout << x; // output 5
我首先了解if (x==5)
,但为什么在x = 5时它会在if (x=6)
输出6,为什么它不会在if(x=0)
中输出0
答案 0 :(得分:1)
if (x=6)
意味着不是比较,而是分配。您将6分配给x,表达式的返回值为6,这不是0,因此它获得了真。
与if (x=0)
类似表达式x = 0获得0,因此它意味着if(0)
答案 1 :(得分:1)
关于计算机的事情是他们非常字面意思。缺少分号或添加的字符可以完全改变程序的功能。因此,在使用某些程序时,您需要像计算机一样小心。
正如@juanchopanza所提到的,==
和=
之间存在差异 - 你已经知道它是什么了。