條件運(yùn)算符(?:)是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,它是對(duì)第一個(gè)表達(dá)式作真/假檢測(cè),然后根據(jù)結(jié)果返回另外兩個(gè)表達(dá)式中的一個(gè)。
網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
表達(dá)式1?表達(dá)式2:表達(dá)式3
在運(yùn)算中,首先對(duì)第一個(gè)表達(dá)式進(jìn)行檢驗(yàn),如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。
例如:
a=(b0)?b:-b;
當(dāng)b0時(shí),a=b;當(dāng)b不大于0時(shí),a=-b;這就是條件表達(dá)式。其實(shí)上面的意思就是把b的絕對(duì)值賦值給a。
i++ 相當(dāng)于 i = i+1;
這種東西簡(jiǎn)述不了,我給你來(lái)份大全
C語(yǔ)言語(yǔ)法參考大全(流程控制語(yǔ)句)----------------------------------------------------------------------------------------------------------01條件語(yǔ)句的一般形式為:if(表達(dá)式) 語(yǔ)句1;else 語(yǔ)句2;上述結(jié)構(gòu)表示: 如果表達(dá)式的值為非0(TURE)即真, 則執(zhí)行語(yǔ)句1, 執(zhí)行完語(yǔ) 句1從語(yǔ)句2后開(kāi)始繼續(xù)向下執(zhí)行; 如果表達(dá)式的值為0(FALSE)即假, 則跳過(guò)語(yǔ)句1而執(zhí)行語(yǔ)句2。注意: 1. 條件執(zhí)行語(yǔ)句中"else 語(yǔ)句2;"部分是選擇項(xiàng), 可以缺省, 此時(shí)條件語(yǔ)句變成:if(表達(dá)式) 語(yǔ)句1;表示若表達(dá)式的值為非0則執(zhí)行語(yǔ)句1 , 否則跳過(guò)語(yǔ)句1繼續(xù)執(zhí)行。 2. 如果語(yǔ)句1或語(yǔ)句2有多于一條語(yǔ)句要執(zhí)行時(shí), 必須使用"{"和"}" 把這些語(yǔ)句包括在其中, 此時(shí)條件語(yǔ)句形式為:if(表達(dá)式){ 語(yǔ)句體1;}else{ 語(yǔ)句體2;}3. 條件語(yǔ)句可以嵌套, 這種情況經(jīng)常碰到, 但條件嵌套語(yǔ)句容易出錯(cuò), 其原因主要是不知道哪個(gè)if對(duì)應(yīng)哪else。例如: if(x20||x-10) if(y=100yx) printf("Good"); else printf("Bad");對(duì)于上述情況, Turbo C2.0規(guī)定: else語(yǔ)句與最近的一個(gè)if語(yǔ)句匹配, 上例中的else與if(y=100yx)相匹配。為了使else與if(x20||x-10)相匹配, 必須用花括號(hào)。如下所示:if(x20||x-10){ if(y=100yx) printf("Good");}else printf("Bad");4. 可用階梯式if-else-if結(jié)構(gòu)。階梯式結(jié)構(gòu)的一般形式為:if(表達(dá)式1) 語(yǔ)句1;else if(表達(dá)式2) 語(yǔ)句2;else if(表達(dá)式3) 語(yǔ)句3; . .else 語(yǔ)句n;這種結(jié)構(gòu)是從上到下逐個(gè)對(duì)條件進(jìn)行判斷, 一旦發(fā)現(xiàn)條件滿點(diǎn)足就執(zhí)行與它有關(guān)的語(yǔ)句, 并跳過(guò)其它剩余階梯; 若沒(méi)有一個(gè)條件滿足, 則執(zhí)行最后一個(gè)else語(yǔ)句n。最后這個(gè)else常起著"缺省條件"的作用。同樣, 如果每一個(gè)條件中有多于一條語(yǔ)句要執(zhí)行時(shí), 必須使用"{"和"}"把這 些語(yǔ)句包括在其中。02switch語(yǔ)句在編寫(xiě)程序時(shí), 經(jīng)常會(huì)碰到按不同情況分轉(zhuǎn)的多路問(wèn)題, 這時(shí)可用嵌套if-else-fi語(yǔ)句來(lái)實(shí)現(xiàn), 但if-else-if語(yǔ)句使用不方便, 并且容易出錯(cuò)。對(duì)這種情況, Turbo C2.0提供了一個(gè)開(kāi)關(guān)語(yǔ)句。開(kāi)關(guān)語(yǔ)句格式為:switch(變量){ case 常量1: 語(yǔ)句1或空; case 常量2: 語(yǔ)句2或空; . . . case 常量n; 語(yǔ)句n或空; default: 語(yǔ)句n+1或空;}執(zhí)行switch開(kāi)關(guān)語(yǔ)句時(shí), 將變量逐個(gè)與case后的常量進(jìn)行比較, 若與其中一個(gè)相等, 則執(zhí)行該常量下的語(yǔ)句, 若不與任何一個(gè)常量相等, 則執(zhí)行default 后面的語(yǔ)句。注意:1. switch中變量可以是數(shù)值, 也可以是字符。2. 可以省略一些case和default。3. 每個(gè)case或default后的語(yǔ)句可以是語(yǔ)句體, 但不需要使用"{"和"}"括起來(lái)。下例的switch中變量為整數(shù)型。main(){int test;for(test=0; test=10; test++){switch(test) /*變量為整型數(shù)的開(kāi)關(guān)語(yǔ)句*/{case 1:printf("%d", test);break; /*退出開(kāi)關(guān)語(yǔ)句*/case 2:printf("%d", test);break;case 3:printf("%d", test);break;default:puts("Error");break;}}}下例的switch中變量為字符型。#includestdio.hmain(){char c;while(c!=27) /*循環(huán)直到按Esc鍵結(jié)束*/{c=getch(); /*從鍵盤(pán)不回顯接收一個(gè)字符*/switch(c){case A: /*接收的字符為A*/putchar(c);break; /*退出開(kāi)關(guān)語(yǔ)句*/case B:putchar(c);break;default: /*接收的字符非A和B*/puts("Error");break;}}}03for循環(huán)for循環(huán)是開(kāi)界的。它的一般形式為:for(初始化; 條件表過(guò)式; 增量) 語(yǔ)句;(1)初始化總是一個(gè)賦值語(yǔ)句, 它用來(lái)給循環(huán)控制變量賦初值;(2) 條件表達(dá)式是一個(gè)關(guān)系表達(dá)式, 它決定什么時(shí)候退出循環(huán);(3) 增量定義循環(huán)控制變量每循環(huán)一次后按什么方式變化。這三個(gè)部分之間用";"分開(kāi)。例如:for(i=1; i=10; i++) 語(yǔ)句;上例中先給i賦初值1, 判斷i是否小于等于10, 若是則執(zhí)行語(yǔ)句, 之后值增加1。再重新判斷, 直到條件為假, 即i10時(shí), 結(jié)束循環(huán)。注意:1. for循環(huán)中語(yǔ)句可以為語(yǔ)句體, 但要用"{"和"}"將參加循環(huán)的語(yǔ)句括起來(lái)。2. for循環(huán)中的"初始化"、"條件表達(dá)式"和"增量"都是選擇項(xiàng), 即可以缺省, 但";"不能缺省。省略了初始化, 表示不對(duì)循環(huán)控制變量賦初值。 省略了條件表達(dá)式, 則不做其它處理時(shí)便成為死循環(huán)。省略了增量, 則不對(duì)循環(huán)控制變量進(jìn)行操作, 這時(shí)可在語(yǔ)句體中加入修改循環(huán)控制變量的語(yǔ)句。3. for循環(huán)可以有多層嵌套。例16:main(){ int i, j, k; printf("i j k"); for (i=0; i2; i++) for(j=0; j2; j++) for(k=0; k2; k++) printf(%d %d %d", i, j, k);}04while循環(huán)與do-while 循環(huán)while循環(huán)的一般形式為:while(條件) 語(yǔ)句;while循環(huán)表示當(dāng)條件為真時(shí), 便執(zhí)行語(yǔ)句。直到條件為假才結(jié)束循環(huán)。并繼續(xù)執(zhí)行循環(huán)程序外的后續(xù)語(yǔ)句.例17:#includestdio.hmain(){char c;c=; /*初始化c*/while(c!=X0D) /*回車(chē)結(jié)束循環(huán)*/c=getche(); /*帶回顯的從鍵盤(pán)接收字符*/}上例中, while循環(huán)是以檢查c是否為回車(chē)符開(kāi)始, 因其事先被初始化為空,所以條件為真, 進(jìn)入循環(huán)等待鍵盤(pán)輸入字符; 一旦輸入回車(chē), 則c=X0D, 條件為假, 循環(huán)便告結(jié)束。與for循環(huán)一樣, while循環(huán)總是在循環(huán)的頭部檢驗(yàn)條件, 這就意味著循環(huán)可能什么也不執(zhí)行就退出。注意:1. 在while循環(huán)體內(nèi)也允許空語(yǔ)句。例如:while((c=getche())!=X0D);這個(gè)循環(huán)直到鍵入回車(chē)為止。2. 可以有多層循環(huán)嵌套。3. 語(yǔ)句可以是語(yǔ)句體, 此時(shí)必須用"{"和"}"括起來(lái)。例18:#includestdio.hmain(){char c, fname[13];FILE *fp; /*定義文件指針*/printf("File name:"); /*提示輸入文件名*/scanf("%s", fname); /*等待輸入文件名*/fp=fopen(fname, "r"); /*打開(kāi)文件只讀*/while((c=fgetc(fp)!=EOF) /*讀取一個(gè)字符并判斷是否到文件結(jié)束*/putchar(c); /*文件未結(jié)束時(shí)顯示該字符*/}05do-while 循環(huán)do-while 循環(huán)的一般格式為:do語(yǔ)句;while(條件);這個(gè)循環(huán)與while循環(huán)的不同在于: 它先執(zhí)行循環(huán)中的語(yǔ)句, 然后再判斷條件是否為真, 如果為真則繼續(xù)循環(huán); 如果為假, 則終止循環(huán)。因此, do-while循環(huán)至少要執(zhí)行一次循環(huán)語(yǔ)句。同樣當(dāng)有許多語(yǔ)句參加循環(huán)時(shí), 要用"{"和"}"把它們括起來(lái)。06continue 語(yǔ)句continue語(yǔ)句的作用是跳過(guò)循環(huán)本中剩余的語(yǔ)句而強(qiáng)行執(zhí)行下一次循環(huán)。continue語(yǔ)句只用在for、while、do-while等循環(huán)體中, 常與if條件語(yǔ)句一起使用, 用來(lái)加速循環(huán)。 main(){ char c; while(c!=0X0D) /*不是回車(chē)符則循環(huán)*/ { c=getch(); if(c==0X1B) continue; /*若按Esc鍵不輸出便進(jìn)行下次循環(huán)*/ printf("%c", c); }}07break語(yǔ)句 break語(yǔ)句通常用在循環(huán)語(yǔ)句和開(kāi)關(guān)語(yǔ)句中。當(dāng)break用于開(kāi)關(guān)語(yǔ)句switch中時(shí), 可使程序跳出switch而執(zhí)行switch以后的語(yǔ)句; 如果沒(méi)有break語(yǔ)句, 則將成為一個(gè)死循環(huán)而無(wú)法退出。當(dāng)break語(yǔ)句用于do-while、for、while循環(huán)語(yǔ)句中時(shí), 可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句, 通常break語(yǔ)句總是與if語(yǔ)句聯(lián)在一起。 即滿足條件時(shí)便跳出循環(huán)。main(){ int i=0; char c; while(1) /*設(shè)置循環(huán)*/ { c=; /*變量賦初值*/ while(c!=13c!=27) /*鍵盤(pán)接收字符直到按回車(chē)或Esc鍵*/ { c=getch(); printf("%c", c); } if(c==27) break; /*判斷若按Esc鍵則退出循環(huán)*/ i++; printf("The No. is %d", i);}printf("The end");}
望采納,謝謝
用運(yùn)算符將運(yùn)算對(duì)象連接形成的式子就是表達(dá)式。表達(dá)式是描述數(shù)據(jù)加工的一種方法,只不過(guò)它描述的是比較簡(jiǎn)單的數(shù)據(jù)加工過(guò)程.
C
語(yǔ)言中的表達(dá)式都是由運(yùn)算對(duì)象和運(yùn)算符組成的,表達(dá)式的一般構(gòu)成規(guī)則如下:
(
l
)單個(gè)的常量、變量、函數(shù)調(diào)用都是表達(dá)式;
(
2
)
“前綴單目運(yùn)算符表達(dá)式”是表達(dá)式;
(
3
)
“表達(dá)式后綴單目運(yùn)算符”是表達(dá)式;
(
4
)
“表達(dá)式雙目運(yùn)算符表達(dá)式”是表達(dá)式;
(
5
)
“表達(dá)式?表達(dá)式:表達(dá)式”是表達(dá)式;
(
6
)有限次使用上述規(guī)則獲得的運(yùn)算式也是表達(dá)式。
由于在復(fù)雜的表達(dá)式中可能出現(xiàn)各種運(yùn)算符,它們的優(yōu)先級(jí)別不同.因此.要注意使用圓括號(hào)來(lái)改變運(yùn)算次序。
每個(gè)表達(dá)式都可以按照其中運(yùn)算符的優(yōu)先級(jí)和運(yùn)算規(guī)則依次對(duì)運(yùn)算對(duì)象進(jìn)行運(yùn)算,最終獲得一個(gè)數(shù)據(jù),該數(shù)據(jù)稱(chēng)為表達(dá)式的值。
表達(dá)式值的數(shù)據(jù)類(lèi)型就稱(chēng)為表達(dá)式的數(shù)據(jù)類(lèi)型。由于表達(dá)式計(jì)算結(jié)果可能是整型、實(shí)型和邏輯型,所以表達(dá)式的數(shù)據(jù)類(lèi)劃也可以分為核型、實(shí)型和邏輯型。在C
語(yǔ)言中邏輯型數(shù)據(jù)都是用整數(shù)來(lái)表示的,所以C
語(yǔ)育的表達(dá)式類(lèi)型實(shí)際上只區(qū)分為整和實(shí)型,這兩種類(lèi)型合稱(chēng)為數(shù)值型。在程序或語(yǔ)句中使用表達(dá)式時(shí),要按照語(yǔ)法和表達(dá)式的位置來(lái)確定表達(dá)式的準(zhǔn)確類(lèi)型。從構(gòu)成表達(dá)式的運(yùn)算符來(lái)劃分.C
語(yǔ)言的表達(dá)式主要分為:算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式、斌值表達(dá)式和逗號(hào)表達(dá)式。
C語(yǔ)言里面函數(shù)是函數(shù),表達(dá)式是表達(dá)式。。函數(shù)定義的方法是:返回值類(lèi)型 函數(shù)名(參數(shù)列表){函數(shù)體}十六進(jìn)制,給整型變量賦值十六進(jìn)制的數(shù)的方法是:數(shù)字以0x開(kāi)頭。
表達(dá)式它是由常量、變量、運(yùn)算符組合(到以后講函數(shù)時(shí),函數(shù)也可以是組成表達(dá)式的元素),計(jì)算以后返回一個(gè)結(jié)果值。表達(dá)式的結(jié)束標(biāo)志是分號(hào)(;),C語(yǔ)言中所有的語(yǔ)句和聲明都是用分號(hào)結(jié)束,在分號(hào)出現(xiàn)之前,語(yǔ)句是不完整的。
例如: 1+2; Counter/3+5;
Height*Width;
表達(dá)式本身什么事情都不做,只是返回結(jié)果值。在程序不對(duì)返回的結(jié)果值做任何操作的情況下,返回的結(jié)果值不起任何作用,表達(dá)式的作用有兩點(diǎn),一個(gè)是放在賦值語(yǔ)句的右邊,另一個(gè)是作為函數(shù)的參數(shù)(以后再介紹)。
表達(dá)式返回的結(jié)果值是有類(lèi)型的。表達(dá)式隱含的數(shù)據(jù)類(lèi)型取決于組成表達(dá)式的變量和常量的類(lèi)型。因此,表達(dá)式的返回值有可能是某種大小的整型,或者是某精度的浮點(diǎn)型,或者是某種指針類(lèi)型。