b){ max = a;}else{ max = b;}  不過(guò),C語(yǔ)言提供了一種更加簡(jiǎn)單的方法,叫做條件運(yùn)算符,語(yǔ)法格式為:  表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3  條件運(yùn)算符是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,其">

亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

C語(yǔ)言

C語(yǔ)言的條件運(yùn)算符

時(shí)間:2025-04-06 09:06:08 劍鋒 C語(yǔ)言 我要投稿

C語(yǔ)言的條件運(yùn)算符

  條件運(yùn)算符是一個(gè)程序開發(fā)的術(shù)語(yǔ),優(yōu)先級(jí)高于賦值、逗號(hào)運(yùn)算符,低于其他運(yùn)算符。下面是小編分享的C語(yǔ)言的條件運(yùn)算符,歡迎大家參考!

  C語(yǔ)言的條件運(yùn)算符

  如果希望獲得兩個(gè)數(shù)中最大的一個(gè),可以使用 if 語(yǔ)句,例如:

  if(a>b){ max = a;}else{ max = b;}

  不過(guò),C語(yǔ)言提供了一種更加簡(jiǎn)單的方法,叫做條件運(yùn)算符,語(yǔ)法格式為:

  表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3

  條件運(yùn)算符是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為整個(gè)條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。條件表達(dá)式通常用于賦值語(yǔ)句之中。

  上面的 if else 語(yǔ)句等價(jià)于:

  max = (a>b) ? a : b;

  該語(yǔ)句的語(yǔ)義是:如a>b為真,則把a(bǔ)賦予max,否則把b 賦予max。

  讀者可以認(rèn)為條件運(yùn)算符是一種簡(jiǎn)寫的 if else,完全可以用 if else 來(lái)替換。

  使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn):

  1) 條件運(yùn)算符的優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。因此

  max=(a>b) ? a : b;

  可以去掉括號(hào)而寫為

  max=a>b ? a : b;

  2) 條件運(yùn)算符?和:是一對(duì)運(yùn)算符,不能分開單獨(dú)使用。

  3) 條件運(yùn)算符的結(jié)合方向是自右至左。例如:

  a>b ? a : c>d ? c : d;

  應(yīng)理解為:

  a>b ? a : ( c>d ? c : d );

  這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式又是一個(gè)條件表達(dá)式。

  用條件表達(dá)式重新編程,輸出兩個(gè)數(shù)中的最大值:

  #includeint main(){ int a, b; printf("Input two numbers:"); scanf("%d %d", &a, &b); printf("max=%d ", a>b?a:b); return 0;}

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

  Input two numbers:23 45

  max=45

  C語(yǔ)言賦值運(yùn)算符

  簡(jiǎn)單賦值運(yùn)算符記為“=”,由“=”連接的式子稱為賦值表達(dá)式。以下是小編為大家搜索整理的C語(yǔ)言賦值運(yùn)算符,歡迎大家閱讀!更多精*內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  其一般形式為:

  變量=表達(dá)式

  例如:

  x=a+b

  w=sin(a)+sin(b)

  y=i+++--j

  賦值表達(dá)式的功能是計(jì)算表達(dá)式的值再賦予左邊的變量。賦值運(yùn)算符具有右結(jié)合*,因此a=b=c=5可理解為a=(b=(c=5))。

  在其它高級(jí)語(yǔ)言中,賦值構(gòu)成了一個(gè)語(yǔ)句,稱為賦值語(yǔ)句。而在C中,把“=”定義為運(yùn)算符,從而組成賦值表達(dá)式。凡是表達(dá)式可以出現(xiàn)的地方均可出現(xiàn)賦值表達(dá)式。

  例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a(bǔ),b相加,和賦予x,故x應(yīng)等于13。

  在C語(yǔ)言中也可以組成賦值語(yǔ)句,按照C語(yǔ)言規(guī)定,任何表達(dá)式在其未尾加上分號(hào)就構(gòu)成為語(yǔ)句。因此如x=8;a=b=c=5;都是賦值語(yǔ)句,在前面各例中我們已大量使用過(guò)了。

  類型轉(zhuǎn)換

  如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,即把賦值號(hào)右邊的類型換成左邊的類型。具體規(guī)定如下:

  實(shí)型賦予整型,舍去小數(shù)部分。

  整型賦予實(shí)型,數(shù)值不變,但將以浮點(diǎn)形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。

  字符型賦予整型,由于字符型為一個(gè)字節(jié),而整型為二個(gè)字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。

  【例3-18】

  #include

  intmain(void){

  inta,b=322;

  floatx,y=8.88;

  charc1=k,c2;

  a=y;

  x=b;

  a=c1;

  c2=b;

  printf("%d,%f,%d,%c",a,x,a,c2);

  return0;

  }

  本例表明了上述賦值運(yùn)算中類型轉(zhuǎn)換的規(guī)則。a為整型,賦予實(shí)型量y值8.88后只取整數(shù)8。x為實(shí)型,賦予整型量b值322,后增加了小數(shù)部分。字符型量c1賦予a變?yōu)檎,整型量b賦予c2后取其低八位成為字符型(b的低八位為01000010,即十進(jìn)制66,按ASCII碼對(duì)應(yīng)于字符B)。

  注意:經(jīng)大家反饋,筆者發(fā)現(xiàn)上面的例子容易造成誤解,現(xiàn)已對(duì)代碼進(jìn)行更改,更改時(shí)間2014-07-0409:12:45,看評(píng)論的讀者請(qǐng)注意評(píng)論時(shí)間,不要混淆。

  更改后的代碼如下:

  #include

  intmain(void){

  inta,c,b=322;

  floatx,y=8.88;

  charc1=k,c2;

  a=y;

  x=b;

  c=c1;

  c2=b;

  printf("a=%d,x=%f,c=%d,c2=%c\n",a,x,c,c2);

  return0;

  }

  輸出結(jié)果:

  a=8,x=322.000000,c=107,c2=B

  復(fù)合的賦值運(yùn)算符

  在賦值符“=”之前加上其它二目運(yùn)算符可構(gòu)成復(fù)合賦值符。如+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。

  構(gòu)成復(fù)合賦值表達(dá)式的一般形式為:

  變量雙目運(yùn)算符=表達(dá)式

  它等效于

  變量=變量運(yùn)算符表達(dá)式

  例如:

  a+=5等價(jià)于a=a+5

  x*=y+7等價(jià)于x=x*(y+7)

  r%=p等價(jià)于r=r%p

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

C語(yǔ)言條件運(yùn)算符02-25

C語(yǔ)言輔導(dǎo):C語(yǔ)言運(yùn)算符表06-17

C語(yǔ)言賦值運(yùn)算符05-31

C語(yǔ)言關(guān)系運(yùn)算符08-04

C語(yǔ)言中的運(yùn)算符03-07

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

C語(yǔ)言邏輯運(yùn)算符02-07

C語(yǔ)言復(fù)合賦值運(yùn)算符05-12

C語(yǔ)言入門知識(shí):運(yùn)算符07-27