3.1 C語(yǔ)言程序的語(yǔ)句
3.1 C語(yǔ)言程序的語(yǔ)句
在第1章中曾經(jīng)介紹過(guò),C語(yǔ)言程序由函數(shù)構(gòu)成,一個(gè)C語(yǔ)言函數(shù)通常由函數(shù)的首部和函數(shù)體兩部分組成,而函數(shù)體一般包括說(shuō)明部分(由若干條說(shuō)明語(yǔ)句組成)和執(zhí)行部分(由若干條執(zhí)行語(yǔ)句組成)。C語(yǔ)言的任何語(yǔ)句都必須以“;”作為語(yǔ)句的結(jié)束標(biāo)志,“;”是C語(yǔ)句的必要組成部分。
3.1.1 說(shuō)明語(yǔ)句
C 語(yǔ)言規(guī)定,函數(shù)中使用的所有變量(或數(shù)組)必須在使用前進(jìn)行定義,否則會(huì)在編譯時(shí)出錯(cuò)。如果程序中不使用變量(或數(shù)組),當(dāng)然也可以沒(méi)有變量定義語(yǔ)句。說(shuō)明語(yǔ)句包括變量(或數(shù)組)定義語(yǔ)句和函數(shù)聲明語(yǔ)句兩種,最常用的是變量(或數(shù)組)定義語(yǔ)句。通常是通過(guò)變量定義語(yǔ)句來(lái)確定變量的類(lèi)型與初值的。例如:
char ch1,ch2; /* 定義ch1,ch2為字符型 */
int x,y,z=1; /* 定義x,y,z為整型,z初值為l */
float a,b,c; /* 定義a,b,c為單精度浮點(diǎn)型 */
double d1,d2; /* 定義d1,d2為雙精度型 */
3.1.2 執(zhí)行語(yǔ)句
程序的功能是由若干條執(zhí)行語(yǔ)句實(shí)現(xiàn)的。執(zhí)行語(yǔ)句可分為5類(lèi):表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句、函數(shù)調(diào)用語(yǔ)句和控制語(yǔ)句。
1.表達(dá)式語(yǔ)句
表達(dá)式語(yǔ)句由任意表達(dá)式加上語(yǔ)句結(jié)束符分號(hào)“;”組成,其一般形式為:
表達(dá)式;
其中,最常用的是由賦值表達(dá)式加上分號(hào)構(gòu)成的賦值語(yǔ)句,其一般形式為:
變量=表達(dá)式;
在C語(yǔ)言中,表達(dá)式語(yǔ)句的表達(dá)能力很強(qiáng),使用也很方便。例如:
a=b+c; /* 賦值語(yǔ)句 */
a+b; /* 加法運(yùn)算語(yǔ)句。但計(jì)算結(jié)果不能保留,無(wú)實(shí)際意義 */
i++; /* 自增1語(yǔ)句,i的值增加1 */
注意:在C語(yǔ)言中有賦值表達(dá)式的概念。賦值表達(dá)式可以包括在其他表達(dá)式之中,但是賦值語(yǔ)句一般不能出現(xiàn)在表達(dá)式中。
2.復(fù)合語(yǔ)句
在C語(yǔ)言中,復(fù)合語(yǔ)句也可稱為“語(yǔ)句塊”,將若干條語(yǔ)句用一對(duì)花括號(hào)“{}”括起來(lái)便構(gòu)成了復(fù)合語(yǔ)句。花括號(hào)內(nèi)可以包含任何C語(yǔ)言語(yǔ)句,其一般形式如下:
{
語(yǔ)句1
語(yǔ)句2
……
語(yǔ)句n
}
例如:
{ i=5; j*=i; }
說(shuō)明:
① 一條復(fù)合語(yǔ)句在語(yǔ)法上作為一條語(yǔ)句處理,在一對(duì)花括號(hào)中的語(yǔ)句數(shù)量不限。在 C語(yǔ)言程序中,凡是可以出現(xiàn)單語(yǔ)句的地方,都可以使用復(fù)合語(yǔ)句。
② 在書(shū)寫(xiě)復(fù)合語(yǔ)句時(shí),要注意花括號(hào)必須配對(duì)。復(fù)合語(yǔ)句中右花括號(hào)的后面不加分號(hào)。
③ 在復(fù)合語(yǔ)句中,不僅可以有執(zhí)行語(yǔ)句,還可以有說(shuō)明語(yǔ)句,說(shuō)明語(yǔ)句應(yīng)該出現(xiàn)在可執(zhí)行語(yǔ)句的前面。例如:
{ int a=5; b=a*a; }
3.空語(yǔ)句
只有一個(gè)分號(hào)“;”組成的語(yǔ)句,被稱為空語(yǔ)句。例如:
main( )
{ ; }
空語(yǔ)句的語(yǔ)義是什么也不執(zhí)行。在程序設(shè)計(jì)中有時(shí)需要加上一個(gè)空語(yǔ)句來(lái)表示存在一條語(yǔ)句,但是隨意加上分號(hào)會(huì)造成邏輯上的錯(cuò)誤,所以應(yīng)該慎用。
4.函數(shù)調(diào)用語(yǔ)句
由函數(shù)調(diào)用表達(dá)式加上分號(hào)即構(gòu)成了函數(shù)調(diào)用語(yǔ)句。例如:
printf("What are you doing?");
5.控制語(yǔ)句
顧名思義,控制語(yǔ)句的作用是控制程序的流程,以實(shí)現(xiàn)程序的分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。C語(yǔ)言只有9種控制語(yǔ)句,可分成以下3類(lèi):
① 條件語(yǔ)句,用于控制分支結(jié)構(gòu)的語(yǔ)句,例如,if語(yǔ)句、switch語(yǔ)句;
② 循環(huán)語(yǔ)句,用于控制循環(huán)結(jié)構(gòu)的語(yǔ)句,例如,while語(yǔ)句、do while語(yǔ)句、for語(yǔ)句;
③ 轉(zhuǎn)向語(yǔ)句,轉(zhuǎn)向語(yǔ)句主要有g(shù)oto語(yǔ)句、break語(yǔ)句、continue語(yǔ)句、return語(yǔ)句。