这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 1.关系运算符和表达式

共1条 1/1 1 跳转至

1.关系运算符和表达式

高工
2014-10-28 09:30:09     打赏

  在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。


  关系运算符及其优先次序


  在C语言中有以下关系运算符:

  1. <(小于)

  2. <=(小于或等于)

  3. >(大于)

  4. >=(大于或等于)

  5. ==(等于)

  6. !=(不等于)


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


  关系表达式


  关系表达式的一般形式为:

  表达式 关系运算符 表达式


  例如:

  a+b>c-d

  x>3/2

  ‘a’+1

  -i-5*j==k+1

  都是合法的关系表达式。由于表达式也可以又是关系表达式。 因此也允许出现嵌套的情况。例如:

  a>(b>c)

  a!=(c==d)

  等。


  关系表达式的值是真”和“假”,用“1”和“0”表示。如:

  5>0的值为“真”,即为1;

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


  【例5-1】



#include <stdio.h>
int main(void){
    char c='k';
    int i=1, j=2, k=3;
    float x=3e+5, y=0.85;
    printf( "%d,%d\n", 'a'+5<c, -i-2*j>=k+1 );
    printf( "%d,%d\n", 1<j<5, x-5.25<=x+y );
    printf( "%d,%d\n", i+j+k==-2*j, k==j==i+5 );
    return 0;
}

 

  在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]