1、int i = 0;
int j = 0;
if ( ++i > 0 || ++j > 0 )
{
printf ("%d\n", i);
printf ("%d\n", j);
}
i = 1;
短路规则:
|| 从左向右开始计算,当遇到为真的条件时停止计算,整个表达式为真;
所有条件为假时表达式才为假。
&& 从左向右开始计算,当遇到为假的条件时停止计算,整个表达式为假;
int b = 2;
int c = 0;
c = a<b ? a : b;
*(a < b ? &a : &b) = 3; //炫酷的写法
printf ("%d\n", a);
printf ("%d\n", b);
printf ("%d\n", c);
int j = 0;
if ( ++i > 0 || ++j > 0 )
{
printf ("%d\n", i);
printf ("%d\n", j);
}
i = 1;
j = 0;
短路规则:
|| 从左向右开始计算,当遇到为真的条件时停止计算,整个表达式为真;
所有条件为假时表达式才为假。
&& 从左向右开始计算,当遇到为假的条件时停止计算,整个表达式为假;
所有条件为真时表达式才为真。
因此当其作用的值不是0时,其结果为0.
规则:当a的值为真时,返回b的值;否则返回c的值
int b = 2;
int c = 0;
c = a<b ? a : b;
*(a < b ? &a : &b) = 3; //炫酷的写法
printf ("%d\n", a);
printf ("%d\n", b);
printf ("%d\n", c);