if(a==true)? 和 c++场宽问题

在看某个坏东西写的花里胡哨的题解的时候发现这样一个判断条件:if(vis[next.x][next.y]==true)

(此vis数组为布尔类型)

我:???这他喵的啥?

然后去搜,发现还有这样几种情况:

1 == true   // true
2 == true   // false
3 == true   // false
1 == false  // false
0 == false  // true

总结一下呢就是这样:

1 == true   // 布尔值会转成number true即为1 所以结果是true
2 == true   // 布尔值会转成number true即为1 所以结果是false
3 == true   // 布尔值会转成number true即为1 所以结果是false
1 == false  // 布尔值会转成number false即为0 所以结果是false
0 == false  // 布尔值会转成number false即为0 所以结果是true

"=="的转换规则:

数字 == 字符串  会转换成  数字 == 数字
数字 == 布尔值  会转换成  数字 == 数字
字符串 == 布尔值  会转换成  数字 == 数字

 


 

c++场宽问题:https://blog.csdn.net/liuzibujian/article/details/80962283

posted @ 2022-03-28 12:53  爱吃虾滑  阅读(150)  评论(0编辑  收藏  举报