C 基本語法
C 基本語法
我們已經看過 C 程式的基本結構,這將有助於我們理解 C 語言的其他基本的構建塊。
C 的令牌(Token)
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 之間的空格字元不是必需的,但是為了增強可讀性,您可以根據需要適當增加一些空格。