//关系运算符的演示
#include<stdio.h>
int main()
{
char c = 'k';
int i = 1, j = 2, k = 3;
double x = 3e+5,y = 0.85; //可以直接把y也定义为double型
//float y = 0.85; //warning C4305: “初始化”: 从“double”到“float”截断
/*
warning C4305原因:在 C 语言中,如果不指定数据类型,那么《《小数常量》》会被认为是 double 类型的。
float y = 0.85;
其中 y 是 float 类型的,但是 0.85 是 double 类型的,由于它是常量,所以编译器称为 const double。
double 是不能隐式转换为 float 的。
这时候可改成 y=1.2f; 或者 y=1.2F
*/
//float y = 0.85f;
int result_1 = 'a' + 5 < c; //'a'+5='f'<'k'
int result_2 = x - 5.25 <= x + y; //300000-5.25<=300000+0.85
printf("%d\n", result_1); //条件成立,返回值为1
printf("%d\n", result_2); //条件成立,返回值为1
printf("%d\n",-i-2*j>=k+1); //条件不成立,返回值为0 //-1-2*2>=3+1
printf("%d\n",1<j<5); //条件成立,返回值为1 //1<2<5
printf("%d\n", i + k + j == -2 * j); //条件不成立,返回值为0 //1+2+3=-2*2
printf("%d\n", k == j == i + 5); //条件不成立,返回值为0 //3=2=1+5
printf("%.f", x); //3e+5 = 3 * 10^5 = 300000
return 0;
}
/*
条件判断表达式:关系表达式 逻辑表达式
(一)关系表达式:
用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式)连接起来构成。例如:
算术表达式:2+4<2*4
关系表达式:0<r<1
逻辑表达式:x>y&&y>z
赋值表达式:x=8 //等于关系用关系运算符"==",而"="是赋值运算符
当关系表达式成立时,其值为1(真);不成立时,其值为0(假)。
关系运算符:
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
关系运算符优先级:(1)(<、<=、>、>=)的优先级相同;(2)(==、!=)的优先级相同;且(1)>(2)。
总体优先级:赋值运算符(=) < 关系运算符 < 算术运算符(+、-、*、/、%、++、--)
*/
条件判断表达式:关系表达式 逻辑表达式
(一)关系表达式:
用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式)连接起来构成。例如:
算术表达式:2+4<2*4
关系表达式:0<r<1
逻辑表达式:x>y&&y>z
赋值表达式:x=8 //等于关系用关系运算符"==",而"="是赋值运算符
当关系表达式成立时,其值为1(真);不成立时,其值为0(假)。
关系运算符:
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
关系运算符优先级:(1)(<、<=、>、>=)的优先级相同;(2)(==、!=)的优先级相同;且(1)>(2)。
总体优先级:赋值运算符(=) < 关系运算符 < 算术运算符(+、-、*、/、%、++、--)
随堂练习4-1
1.字符变量ch的值是字母'y'的关系表达式为——ch == 'y'
2.整型变量n为偶数的关系表达式为——n % 2 == 0