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