下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

C语言基础面面观之关系运算符

作者:课课家教育     来源: http://www.kokojia.com点击数:817发布时间: 2019-03-01 10:06:52

标签: 编程语言C语言关系运算符

大神带你学编程,欢迎选课

  什么是关系运算符,关系运算符的作用是什么,关系运算符到底怎么使用,估计很多C语言初学者对此还是一头雾水。下面课课家笔者就给大家详细介绍C语言中的关系运算符。

  首先笔者先给大家介绍关系运算符的基本概念和作用。在C语言ifelse语句中我们学习到,if的判断条件中使用了<=、>、!=等符号,它们专门用在判断条件中让程序决定下一步的操作,这样的符号在C语言中被称为关系运算符(Relational Operators)。关系运算符在使用时,它的的两边都会有一个表达式,比如变量、数值、加减乘除运算等,关系运算符的作用就是判明这两个表达式的大小关系。注意是判明大小关系,不是其他关系。C语言提供了以下关系运算符:

C语言基础面面观之关系运算符_编程语言_C语言_关系运算符_课课家教育

图1

 

  关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。在C语言中,有的运算符有两个操作数,比如10+20,10和20都是操作数,+是运算符,我们将这样的运算符称为双目运算符。同理将有一个操作数的运算符称为单目运算符,将有三个操作数的运算符称为三目运算符。常见的双目运算符有+、-、*、/等,单目运算符有++、--等,三目运算符只有一个,就是?:。关系运算符的两边可以是变量、数据或表达式,比如:

  ①a+b>c-d

  ②x>3/2

  ③'a'+1<c

  ④-i-5*j==k+1

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

  ①a>(b>c)

  ②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\\n",result_1,-i-2*j>=k+1);

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

  printf("%d,%d\\n",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”字符串。

  本次C语言基础面面观之关系运算符的教程到此就结束了,如果以后有补充的话笔者会继续在此补充,希望这个教程对大家学习C语言能起到一定的帮助作用!

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程