C 基本語法
我們已經看過 C 程式的基本結構,這將有助於我們理解 C 語言的其他基本的構建塊。
C 的令牌(Tokens)
C 程式由各種令牌組成,令牌可以是關鍵字、識別字、常量、字串值,或者是一個符號。例如,下麵的 C 語句包括五個令牌:
printf("Hello, World! \n");
這五個令牌分別是:
printf ( "Hello, World! \n" ) ;
分號 ;
在 C 程式中,分號是語句結束符。也就是說,每個語句必須以分號結束。它表明一個邏輯實體的結束。
例如,下麵是兩個不同的語句:
printf("Hello, World! \n"); return 0;
注釋
C 語言有兩種注釋方式:
// 單行注釋
以 // 開始的單行注釋,這種注釋可以單獨占一行。
/* 單行注釋 */ /* 多行注釋 多行注釋 多行注釋 */
/* */ 這種格式的注釋可以單行或多行。
您不能在注釋內嵌套注釋,注釋也不能出現在字串或字元值中。
識別字
C 識別字是用來標識變數、函數,或任何其他用戶自定義專案的名稱。一個識別字以字母 A-Z 或 a-z 或下劃線 _ 開始,後跟零個或多個字母、下劃線和數字(0-9)。
C 識別字內不允許出現標點字元,比如 @、$ 和 %。C 是區分大小寫的編程語言。因此,在 C 中,Manpower 和 manpower 是兩個不同的識別字。下麵列出幾個有效的識別字:
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
關鍵字
下表列出了 C 中的保留字。這些保留字不能作為常量名、變數名或其他識別字名稱。
關鍵字 | 說明 |
---|---|
auto | 聲明自動變數 |
break | 跳出當前迴圈 |
case | 開關語句分支 |
char | 聲明字元型變數或函數返回值類型 |
const | 定義常量,如果一個變數被 const 修飾,那麼它的值就不能再被改變 |
continue | 結束當前迴圈,開始下一輪迴圈 |
default | 開關語句中的"其他"分支 |
do | 迴圈語句的循環體 |
double | 聲明雙精度浮點型變數或函數返回值類型 |
else | 條件語句否定分支(與 if 連用) |
enum | 聲明枚舉類型 |
extern | 聲明變數或函數是在其他檔或本文件的其他位置定義 |
float | 聲明浮點型變數或函數返回值類型 |
for | 一種迴圈語句 |
goto | 無條件跳轉語句 |
if | 條件語句 |
int | 聲明整型變數或函數 |
long | 聲明長整型變數或函數返回值類型 |
register | 聲明寄存器變數 |
return | 副程式返回語句(可以帶參數,也可不帶參數) |
short | 聲明短整型變數或函數 |
signed | 聲明有符號類型變數或函數 |
sizeof | 計算數據類型或變數長度(即所占位元組數) |
static | 聲明靜態變數 |
struct | 聲明結構體類型 |
switch | 用於開關語句 |
typedef | 用以給數據類型取別名 |
unsigned | 聲明無符號類型變數或函數 |
union | 聲明共用體類型 |
void | 聲明函數無返回值或無參數,聲明無類型指針 |
volatile | 說明變數在程式執行中可被隱含地改變 |
while | 迴圈語句的迴圈條件 |
C99 新增關鍵字
_Bool | _Complex | _Imaginary | inline | restrict |
C11 新增關鍵字
_Alignas | _Alignof | _Atomic | _Generic | _Noreturn |
_Static_assert | _Thread_local |
C 中的空格
只包含空格的行,被稱為空白行,可能帶有注釋,C 編譯器會完全忽略它。
在 C 中,空格用於描述空白符、跳位字元、換行符和注釋。空格分隔語句的各個部分,讓編譯器能識別語句中的某個元素(比如 int)在哪里結束,下一個元素在哪里開始。因此,在下面的語句中:
int age;
在這裏,int 和 age 之間必須至少有一個空格字元(通常是一個空白符),這樣編譯器才能夠區分它們。另一方面,在下面的語句中:
fruit = apples + oranges; // 獲取水果的總數
fruit 和 =,或者 = 和 apples 之間的空格字元不是必需的,但是為了增強可讀性,您可以根據需要適當增加一些空格。