逻辑操作符有:
&& 逻辑与
|| 逻辑或
区分逻辑与和按位与
区分逻辑或和按位或
1&2----->0
1&&2---->1 (逻辑与)
1|2----->3
1||2---->1 (逻辑或)
逻辑运算符 && ,|| 和 !对操作数的处理方式:
要么将其视作 ”真“ , 要么将其视为 ”假“。
这些运算符当结果为 ”真“ 时返回 1,当结果为 ”假“ 时返回 0 ,它们只可能返回 0 或 1
除此之外,最重要的是:
逻辑运算符 && ,与运算符 || 在左侧操作数的值能够确定最终结果时,(如果不能确定最终结果时,会依次执行,直到可以确定最终结果),根本不会对右侧操作数求值
例如:一个表达式有多个逻辑运算符
练习1:
#include <stdio.h>
int main()
{
int i = 0, a = 0, b = 2, c = 3, d = 4;
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
程序输出的结果是什么?
练习2:
#include <stdio.h>
int main()
{
int i = 0, a = 1, b = 2, c = 3, d = 4;//这里a的值为1
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
程序输出的结果是什么?
练习3:
#include <stdio.h>
int main()
{
int i = 0, a = 1, b = 2, c = 3, d = 4;//这里a的值为1
//i = a++ && ++b && d++;
i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
程序输出的结果是什么?
练习4:
#include <stdio.h>
int main()
{
int i = 0, a = 0, b = 2, c = 3, d = 4;//这里a的值为0
//i = a++ && ++b && d++;
i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
程序输出的结果是什么?