逻辑运算符||和&&具有短路属性,他们以一种特殊的方式处理不同类型的值,他们会首先按顺序先将左侧的值转换为布尔类型,来决定做什么,再根据左侧布尔类型的取值,返回左侧的布尔类型取值或右侧的布尔类型取值。
对于||来说,若左侧的值能转换成true,则直接返回左侧的布尔类型,右侧的等式不再进行处理,若左侧的值转换成false,则返回右侧转换后的布尔类型
对于&&来说,其工作方式与||类似,若左侧的值转换成false,则直接返回左侧的布尔类型,否则返回右侧的布尔类型
例:
int main()
{
int i = 0;
cout << (1 || i++