亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言

C語言關(guān)系運(yùn)算符

時(shí)間:2024-08-04 14:05:35 C語言 我要投稿
  • 相關(guān)推薦

C語言關(guān)系運(yùn)算符

  if 的判斷條件中使用了<=、>、!=等符號,它們專門用在判斷條件中,讓程序決定下一步的操作,稱為關(guān)系運(yùn)算符。下面是小編分享的C語言關(guān)系運(yùn)算符,歡迎大家參考!

  關(guān)系運(yùn)算符在使用時(shí),它的的兩邊都會(huì)有一個(gè)表達(dá)式,比如變量、數(shù)值、加減乘除運(yùn)算等,關(guān)系運(yùn)算符的作用就是判明這兩個(gè)表達(dá)式的大小關(guān)系。注意,是判明大小關(guān)系,不是其他關(guān)系。

  C語言提供了以下關(guān)系運(yùn)算符:

  關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合。關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在六個(gè)關(guān)系運(yùn)算符中,<、<=、>、>=的優(yōu)先級相同,高于==和!=,==和!=的優(yōu)先級相同。

  在C語言中,有的運(yùn)算符有兩個(gè)操作數(shù),例如 10+20,10和20都是操作數(shù),+ 是運(yùn)算符。我們將這樣的運(yùn)算符稱為雙目運(yùn)算符。同理,將有一個(gè)操作數(shù)的運(yùn)算符稱為單目運(yùn)算符,將有三個(gè)操作數(shù)的運(yùn)算符稱為三目運(yùn)算符。

  常見的雙目運(yùn)算符有 +、-、*、/ 等,單目運(yùn)算符有 ++、-- 等,三目運(yùn)算符只有一個(gè),就是 ? :,我們將在《C語言條件運(yùn)算符》中詳細(xì)介紹。

  關(guān)系運(yùn)算符的兩邊可以是變量、數(shù)據(jù)或表達(dá)式,例如:

  1) a+b > c-d

  2) x > 3/2

  3) 'a'+1 < c

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

  關(guān)系運(yùn)算符也可以嵌套使用,例如:

  1) a > (b > c)

  2) a != (c == d)

  關(guān)系運(yùn)算符的運(yùn)算結(jié)果只有 0 或 1。當(dāng)條件成立時(shí)結(jié)果為 1,條件不成立結(jié)果為 0。例如:

  5>0 成立,其值為 1;

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

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

  我們將運(yùn)算結(jié)果 1 稱為“真”,表示條件成立,將 0 稱為“假”,表示條件不成立。

  下面的代碼會(huì)將關(guān)系運(yùn)算符的結(jié)果輸出:

  #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;

  }

  運(yùn)行結(jié)果:

  1, 0

  1, 1

  0, 0

  對于含多個(gè)關(guān)系運(yùn)算符的表達(dá)式,如 k==j==i+5,根據(jù)運(yùn)算符的左結(jié)合性,先計(jì)算k==j,該式不成立,其值為0,再計(jì)算0==i+5,也不成立,故表達(dá)式值為0。

  需要提醒的是,==才表示等于,而=表示賦值,大家要注意區(qū)分,切勿混淆。

  再談 if 語句的判斷條件

  if 語句的判斷條件中不是必須要包含關(guān)系運(yùn)算符,它可以是賦值表達(dá)式,甚至也可以是一個(gè)變量,例如:

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

  都是允許的。只要整個(gè)表達(dá)式的值為非0,條件就成立。

  上面兩種情況都是根據(jù)變量 b 的最終值來判斷的,如果 b 的值為非0,那么條件成立,否則不成立。

  又如,有程序段:

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

  意思是,把 b 的值賦予 a,如果為非0則輸出該值,否則輸出“a=0”字符串。這種用法在后面的程序中會(huì)經(jīng)常出現(xiàn)。

  【拓展】

  1) 與運(yùn)算(&&)

  參與運(yùn)算的兩個(gè)表達(dá)式都為真時(shí),結(jié)果才為真,否則為假。例如:

  5&&0

  5為真,0為假,相與的結(jié)果為假,也就是 0。

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

  5>0 的結(jié)果是1,為真,4>2結(jié)果是1,也為真,所以相與的結(jié)果為真,也就是1。

  2) 或運(yùn)算(||)

  參與運(yùn)算的兩個(gè)表達(dá)式只要有一個(gè)為真,結(jié)果就為真;兩個(gè)表達(dá)式都為假時(shí)結(jié)果才為假。例如:

  10 || 0

  10為真,0為假,相或的結(jié)果為真,也就是 1。

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

  5>0 的結(jié)果是1,為真,5>8 的結(jié)果是0,為假,所以相或的結(jié)果為真,也就是1。

  3) 非運(yùn)算(!)

  參與運(yùn)算的表達(dá)式為真時(shí),結(jié)果為假;參與運(yùn)算的表達(dá)式為假時(shí),結(jié)果為真。例如:

  !0

  0 為假,非運(yùn)算的結(jié)果為真,也就是 1。

  !(5>0)

  5>0 的結(jié)果是1,為真,非運(yùn)算的結(jié)果為假,也就是 0。

【C語言關(guān)系運(yùn)算符】相關(guān)文章:

C語言的條件運(yùn)算符12-19

c語言算術(shù)運(yùn)算符07-23

c語言位運(yùn)算符的用法指導(dǎo)06-02

C語言和C++有什么關(guān)系09-23

C語言項(xiàng)目中.h文件和.c文件的關(guān)系詳解05-08

JAVA程序語言中的運(yùn)算符10-09

C語言的結(jié)構(gòu)10-14

C語言和C++的分別06-18

C語言考點(diǎn)精選06-29

C語言的應(yīng)用05-29