C语言的关系运算符

来源:互联网 发布:手机淘宝经常弹出登录 编辑:程序博客网 时间:2024/04/29 08:23

关系运算符是C语言中的基本运算符之一,同算术运算符、逻辑运算符一起,被包含在包括C语言在内的大多数程序设计语言中。C语言的关系运算符包括<,>,<=,>=,==!=

符号 含义 < 小于 > 大于 <= 小于或等于 >= 大于或等于 == 等于 != 不等于

C语言中没有向其他一些编程语言一样提供Boolean类型,关系表达式的返回结果是0(表示假)或1(表示真)。

关系运算符可以用于整型、浮点型、字符型或混合类型。关系运算符的优先级低于算术运算符,且是左结合的。因此i<j<k的意义与数学表达式中的意义不同,而是等价于(i<j)<k,先计算i<j的值是0或1,再拿0或1与k比较。而要实现数学表达式中的意义,要用逻辑运算符&&,表示为i < j && j < k。六种关系运算符的优先级也并不是完全相同的,其中前四个运算符<,>,<=,>=的优先级要高于==!=

/****************************************** * relational_operator.c                  * *                                        * * C语言中的关系运算符                    * ******************************************/#include <stdio.h>int main(){  printf("10 < 11的值为: %d\n", 10 < 11);  printf("10 > 11的值为: %d\n", 10 > 11);  printf("2.5 >= 1的值为: %d\n", 2.5 >= 1);  printf("5.6 <= 4的值为: %d\n", 5.6 <= 4);  int i = -2;  int j = -1;  int k = 0;  printf("i+j<k-1的值为: %d\n", i + j < k - 1);  printf("(i+j)<(k-1)的值为: %d\n", (i + j) < (k - 1));  printf("i<j<k的值为: %d\n", i < j < k);  printf("i<j&&j<k的值为: %d\n", i < j && j < k);  printf("i<j == j<k的值为: %d\n", i<j == j<k);  printf("(i<j) == (j<k)的值为: %d\n", (i<j) == (j<k));  return 0;}

使用gcc编辑器,开启-Wall选项可以发现其提供了两条,第一条是说X<=Y<=Z这种形式和数学上的意义不同,第二条说在==两端建议使用()包裹两边的表达式。
关系运算符

参考文献

  1. K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社
0 0
原创粉丝点击