-
狐的传说
C/C++在逻辑判断表达式上有个短路效应A || B,当A为逻辑真时,整个表达式的值已经可以确定为真,B就不执行了A && B,当A为逻辑假时,整个表达式的值已经可以确定为假,B就不执行了这里x>y为真,所以后面的(++y)&&(++x)就不执行了。
-
达令说
&&比||的优先级高如真 || 真 && 假 结果为真(真||真) && 假 结果为假int a=3;float f;f=(float)a+3;cout<<f<<endll;这个如果改成int a=3;float f;f=(float)(a+3);cout<<f<<endll;就会输出6.0了因为你的f=(float)a+3;会使(float)先与a结合.也就是说只强制转换了a,然后与整型3相加.当两个不同类型的数据相加时.C语言会转化成相同类型.于是a又被转成了整型.然后再与3相加.得出6
-
拉风的咖菲猫
&&是先求左边的值,如果是0则结果是0,否则再求右边的值,如果是0则结果是0,否则结果是1||是先求左边的值,如果是1则结果是1,否则再求右边的值,如果结果是1则结果是,否则结果是0因为C++的ostream默认状态下是不显示结尾的0的,和printf的固定小数位数显示方式不同。