第15课-逻辑运算符分析

13次阅读

共计 556 个字符,预计需要花费 2 分钟才能阅读完成。

逻辑与的优先级比逻辑或高


例子 15-1:

include “stdio.h”

int main()
{

int i = 0;
int j = 0;
int k = 0;
(++i) || (++j && ++k);
printf("%d\n",i);
printf("%d\n",j);
printf("%d\n",k);
return 0;

}
输出结果:
1,0,0
例子分析:(ture && ++i)结果为 1;程序短路了不会再往后面执行,所以后面的程序将不再运行,j,k 都为 0;

例子 15-2:

include “stdio.h”

int g = 0;
int f()
{

printf("In f()...\n");
return g++;

}

int main()
{

if(g || f() && f())
{printf("In if statement",g);
}
printf("int main():%d\n",g);
return 0;

}
输出结果:
In f()…
int main():1
if 语句实际为 if((ture && g) || (f() && f()));

例子 15-3:

include “stdio.h”

int main()
{

printf("%d\n",!0);
printf("%d\n",!1);
printf("%d\n",!100);
printf("%d\n",!-1000);
return 0;

}
输出结果:
1
0
0
0

小结:

正文完
 0