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