&&和||运算有一个短路特性简单叙述如下。
要使(表达式1)&&(表达式2)运算结果为真则要求:表达式1,表达式2都为真,如果表达式1为假,则不计算表达式2了,因为此时已
经确定(表达式1)&&(表达式2)运算结果不可能为真,这就是&&运算的短路特性。
要使(表达式1)||(表达式2)运算结果为假则要求:表达式1,表达式2都为假,如果表达式1为真,则不计算表达式2了,因为此时已经
确定(表达式1)||(表达式2)运算结果不可能为假,这就是||运算的短路特性。
即
int a=6,b=1;
if(--b&&++a)
{
printf("%d %d",b,a);
//前面b=0 就不执行后面的句子啦
//此时 b=0 a=6
}
if(++a||--b)
{
printf("%d %d",b,a);
//前面a=7 即为真 就不执行后面的句子啦
//此时 b=1 a=7
}
\t 横向制表符 不同于空格的是 它会自动对齐
\t到底跳过几个空格是没有规定,也没有标准的,每个输出设备会规定自己设备上\t会定位到某个整数单位倍数处,比如有的设备规定\t定
位到8字符整数倍数处,假定某个字符串在制表符\t的前面有n个字符,那么\t将跳过8-n%8个空格。