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