逻辑运算符的优先级:
- ! 优先于 双目运算符 优先于 关系运算符 优先于 && 优先于 ||
- 单目逻辑运算符! 和单目算术运算符 的优先级相同,结合性均是从右至左
- 双目逻辑运算符“&&”和“||”的结合性是从左至右
注意:
- 对于运算结果:1(逻辑真)0(逻辑假)
- 对于运算对象:非0(逻辑真)0(逻辑假)
- 逻辑与“&&”相当于“同时”;逻辑或“||”相当于“或者”;逻辑非“!”相当于“否定”
- 运算对象可以是任何类型的数据
- 一旦“&&”和“||”能够确定表达式的值,则不再继续运算。逻辑与“&&”第一个表达式为“假”,则运算结果为“假”,不再继续运算。逻辑或“||”第一个表达式为“真”,则运算结果为“真”,不再继续运算。
逻辑表达式的构成规则:
单目逻辑运算符 表达式
表达式 双目逻辑运算符 表达式
1,判判断年份是否为闰年的逻辑表达式。
代码如下:
//从键盘输入年份,判断是否为闰年
#include<stdio.h>
int main(void)
{int year, result; printf("请输入年份: \n"); scanf("%d",&year); //从键盘输入年份并保存到变量yearresult = (year%4==0)&&(year%100!=0)||(year%400==0); //判断是否为闰年并保存到变量resultif(result==1)printf("%d 年是闰年\n",year); elseprintf("%d 年不是闰年\n",year);return 0;}
结果如下:
2,简单例子
代码如下:
#include<stdio.h>
int main(void)
{int a=1, b=2, c=3, d=4, m=1,n=1;printf("(m=a>b)&&(n=c>d)的值为: %d\n",(m=a>b)&&(n=c>d)); //(m=0)&&(n=c>d) --> 0&&(n=c>d) -->0printf("m 的值为: %d\n",m); //0printf("n 的值为: %d\n",n); //1return 0;
}
结果如下: