解释为什么第二个表达式返回false
cout << (4==4) << endl; //1
cout << (4==4==4) << endl; // 0
Run Code Online (Sandbox Code Playgroud)
Naw*_*waz 13
(4==4==4)基本上((4==4)==4)是(true == 4)哪一个是(1==4) 1,即false 2被打印为0.
请注意,从左到右==具有关联性,但这并不重要(在这种情况下),因为即使它具有从右向左的关联性,结果也是相同的.
1.由于整体推广.
2.请注意,误以为有人可能会4在(true==4)可以作为被处理true(毕竟4不为零,因此true).这种想法可能会认为(true==4)是(true==true)是true.但这不是它的工作原理.bool被提升为int,而不是int到bool.
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |