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 中,Manpowermanpower 是兩個不同的識別符號。下面列出幾個有效的識別符號:

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 之間的空格字元不是必需的,但是為了增強可讀性,您可以根據需要適當增加一些空格。