代码示例。
#include <stdio.h>
#include <math.h>
int main(){
int a = 5, b = 3;
printf("%d\n", 1 < 2);
printf("%d\n", a > b);
printf("%d\n", a <= b + 1);
printf("%d\n", 'a' + 'b' <= 'c');
printf("%d\n", (a=3) > (b=5));
return 0;
}
运行结果。
代码示例。
#include <stdio.h>
int main(){
int a = 5, b = 3;
printf("%d\n", 3 > 1 && 1 < 2);
printf("%d\n", 3 + 1 || 2 == 0);
printf("%d\n", !(a + b));
printf("%d\n", !0 + 1 < 1 || !(3 + 4));
printf("%d\n", 'a' - 'b' && 'c');
return 0;
}
运行结果。
代码示例。
#include <stdio.h>
int main(){
int a = 3, b = 3;
(a = 0) && (b = 5);
printf("a = %d, b = %d\n", a, b);
(a = 1) || (b = 5);
printf("a = %d, b = %d\n", a, b);
return 0;
}
运行结果。
一般可能会认为运行的结果会是(a = 0, b = 5)和(a = 1, b = 5),但从上图的运行结果中来看, 并不是这样,原因就在于应用了短路求值的原则。即当程序执行到(a = 0) && (b = 5);时,由于是逻与,当把0赋值给变量a时,程序判断变量a的值为假,便不再继续往后执行;同理,当程序执行到(a = 1) || (b = 5);时,由于是逻辑或,当把1赋值给变量a时,程序判断变量a的值为真,便不再继续往后执行。
注:如果觉得有用的话,记得点赞收藏哦!