C语言

C语言关系运算符

时间:2024-08-04 14:05:35 C语言 我要投稿
  • 相关推荐

C语言关系运算符

  if 的判断条件中使用了<=、>、!=等符号,它们专门用在判断条件中,让程序决定下一步的操作,称为关系运算符。下面是小编分享的C语言关系运算符,欢迎大家参考!

  关系运算符在使用时,它的的两边都会有一个表达式,比如变量、数值、加减乘除运算等,关系运算符的作用就是判明这两个表达式的大小关系。注意,是判明大小关系,不是其他关系。

  C语言提供了以下关系运算符:

  关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。

  在C语言中,有的运算符有两个操作数,例如 10+20,10和20都是操作数,+ 是运算符。我们将这样的运算符称为双目运算符。同理,将有一个操作数的运算符称为单目运算符,将有三个操作数的运算符称为三目运算符。

  常见的双目运算符有 +、-、*、/ 等,单目运算符有 ++、-- 等,三目运算符只有一个,就是 ? :,我们将在《C语言条件运算符》中详细介绍。

  关系运算符的两边可以是变量、数据或表达式,例如:

  1) a+b > c-d

  2) x > 3/2

  3) 'a'+1 < c

  4) -i-5*j == k+1

  关系运算符也可以嵌套使用,例如:

  1) a > (b > c)

  2) a != (c == d)

  关系运算符的运算结果只有 0 或 1。当条件成立时结果为 1,条件不成立结果为 0。例如:

  5>0 成立,其值为 1;

  34-12>100 不成立,其值为 0;

  (a=3)>(b=5) 由于3>5不成立,故其值为 0。

  我们将运算结果 1 称为“真”,表示条件成立,将 0 称为“假”,表示条件不成立。

  下面的代码会将关系运算符的结果输出:

  #include <stdio.h>

  int main(){

  char c='k';

  int i=1, j=2, k=3;

  float x=3e+5, y=0.85;

  int result_1 = 'a'+5<c, result_2 = x-5.25<=x+y;

  printf( "%d, %d ", result_1, -i-2*j>=k+1 );

  printf( "%d, %d ", 1<j<5, result_2 );

  printf( "%d, %d ", i+j+k==-2*j, k==j==i+5 );

  return 0;

  }

  运行结果:

  1, 0

  1, 1

  0, 0

  对于含多个关系运算符的表达式,如 k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。

  需要提醒的是,==才表示等于,而=表示赋值,大家要注意区分,切勿混淆。

  再谈 if 语句的判断条件

  if 语句的判断条件中不是必须要包含关系运算符,它可以是赋值表达式,甚至也可以是一个变量,例如:

  //情况①if(b){ //TODO:}//情况②if(b=5){ //情况① //TODO:}

  都是允许的。只要整个表达式的值为非0,条件就成立。

  上面两种情况都是根据变量 b 的最终值来判断的,如果 b 的值为非0,那么条件成立,否则不成立。

  又如,有程序段:

  if(a=b) printf("%d",a);else printf("a=0");

  意思是,把 b 的值赋予 a,如果为非0则输出该值,否则输出“a=0”字符串。这种用法在后面的程序中会经常出现。

  【拓展】

  1) 与运算(&&)

  参与运算的两个表达式都为真时,结果才为真,否则为假。例如:

  5&&0

  5为真,0为假,相与的结果为假,也就是 0。

  (5>0) && (4>2)

  5>0 的结果是1,为真,4>2结果是1,也为真,所以相与的结果为真,也就是1。

  2) 或运算(||)

  参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。例如:

  10 || 0

  10为真,0为假,相或的结果为真,也就是 1。

  (5>0) || (5>8)

  5>0 的结果是1,为真,5>8 的结果是0,为假,所以相或的结果为真,也就是1。

  3) 非运算(!)

  参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。例如:

  !0

  0 为假,非运算的结果为真,也就是 1。

  !(5>0)

  5>0 的结果是1,为真,非运算的结果为假,也就是 0。

【C语言关系运算符】相关文章:

C语言的条件运算符12-19

c语言算术运算符07-23

c语言位运算符的用法指导06-02

C语言和C++有什么关系09-23

C语言项目中.h文件和.c文件的关系详解05-08

JAVA程序语言中的运算符10-09

C语言的结构10-14

C语言和C++的分别06-18

C语言考点精选06-29

C语言的应用05-29