逻辑与运算符&&连接起来的表达式仅当其每一个表达式均为真(c中用非0表示)时,整个表达式才为真,只要有一个为假(c中用0表示),整个表达式的值为假。既然这样,很多编译器遇到逻辑与运算符连接的表达式时,如果前面的子表达式值为0,则对后面的子表达式不予计算。
在很多地方,&&有特殊用法,比如用逻辑与运算符连接两个语句或命令,这时只有前面的语句正确执行,系统才会执行后面的语句,如果前面的语句执行失败或者返回值为0,则不会执行后面的语句或命令。
举例来说,假设整型变量a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式
(m=a>b)&&(n=c>d)以后,变量m的值变为0(因为a>b不成立),而n的值仍为2,因为前面的子表达式值为0,则对后面的子表达式(n=c>d)不予计算。
温馨提示:内容为网友见解,仅供参考