一個程序包含一個或多個程序單位(每個程序單位構成一個程序文件)。每一個程序單位由以下幾個部分組成:
1.預處理命令。如#include命令和#define命令。
2.聲明部分。例如對數據類型和函數的聲明,以及對變量的定義。
3.函數。包括函數首部和函數體,在函數體中可以包含若干聲明語句和執行語句。
如下面是一個完整的C++程序:
如果一個變量在函數之外進行聲明,此變量是全局變量,它的有效范圍是從該行開始到本程序單位結束。如果一個變量在函數內聲明,此變量是局部變量,它的有效范圍是從該行開始到本函數結束。C++程序結構可以用圖3.1表示。
程序應該包括數據描述(由聲明語句來實現)和數據操作(由執行語句來實現)。數據描述主要包括數據類型的聲明、函數和變量的定義、變量的初始化等。數據操作的任務是對已提供的數據進行加工。
C++程序中最小的獨立單位是語句(statement)。它相當於一篇文章中的一個句子。句子是用句號結束的。語句一般是用分號結束的(復合語句是以右花括號結束的)。
C++語句可以分為以下4種。
1. 聲明語句
如int a, b;在C語言中,只有產生實際操作的才稱為語句,對變量的定義不作為語句,而且要求對變量的定義必須出現在本塊中所有程序語句之前。因此C程序員已經養成了一個習慣: 在函數或塊的開頭位置定義全部變量。在C++中,對變量(以及其他對象)的定義被認為是一條語句,並且可以出現在函數中的任何行,即可以放在其他程序語句可以出現的地方,也可以放在函數之外。這樣更加靈活,可以很方便地實現變量的局部化(變量的作用范圍從聲明語句開始到本函數或本塊結束)。
2. 執行語句
通知計算機完成一定的操作。執行語句包括以下幾種。
1) 控制語句,完成一定的控制功能。C++有9種控制語句,即:
if( )~else~ (條件語句)
for( )~ (循環語句)
while( )~ (循環語句)
do~while( ) (循環語句)
continue(結束本次循環語句)
break(中止執行switch或循環語句)
switch (多分支選擇語句)
goto (轉向語句)
return (從函數返回語句)
2) 函數和流對象調用語句。函數調用語句由一次函數調用加一個分號構成一個語句,例如:
sort(x, y,z); //假設已定義了sort函數,它有3個參數
cout<<x<<endl; //流對象調用語句
3) 表達式語句。由一個表達式加一個分號構成一個語句。最典型的是:由賦值表達式構成一個賦值語句。
i=i+1 //是一個賦值表達式
i=i+1; //是一個賦值語句
任何一個表達式的最後加一個分號都可以成為一個語句。一個語句必須在最後出現分號。
表達式能構成語句是C和C++語言的一個重要特色。C++程序中大多數語句是表達式語句(包括函數調用語句)。
3. 空語句
下面是一個空語句:
; // 該語句只有一個分號
即只有一個分號的語句,它什麼也不做。有時用來做被轉向點,或循環語句中的循環體。
4. 復合語句
可以用 { }把一些語句括起來成為復合語句。如下面是一個復合語句。
注意:復合語句中最後一個語句中最後的分號不能省略