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