c語(yǔ)言 基本語(yǔ)法
c 程序由各種標(biāo)識(shí)(tokens)組成,標(biāo)識(shí)可以是關(guān)鍵字、標(biāo)識(shí)符、常量、字符串值,或者是一個(gè)符號(hào)。例如,下面的 c 語(yǔ)句包括五個(gè)標(biāo)識(shí):
printf("hello, yapf! \n");
這五個(gè)標(biāo)識(shí)分別是:
printf?// 標(biāo)識(shí)符 (????// 符號(hào) "hello, yapf! \n"????//?字符串值 )????// 符號(hào) ;????//?分號(hào)是語(yǔ)句結(jié)束符
1. 分號(hào) ;
在 c 程序中,分號(hào)是語(yǔ)句結(jié)束符。也就是說,每個(gè)語(yǔ)句必須以分號(hào)結(jié)束。它表明一個(gè)邏輯實(shí)體的結(jié)束。
例如,下面是兩個(gè)不同的語(yǔ)句:
printf("hello, yapf! \n"); return 0;
2. 注釋
注釋就像是 c 程序中的幫助文本,它們會(huì)被編譯器忽略。它們以 ?/*? 開始,以字符 ?*/? 終止,如下所示:
// 單行注釋 /* 多行注釋 多行注釋 多行注釋 */
- ?//?也叫行級(jí)注釋 因?yàn)橹荒茏⑨屢恍?/li>
- ?/* */ ?這個(gè)是多行注釋 也叫塊級(jí)注釋 這種格式的注釋可以單行或多行。
錯(cuò)誤演示:
//我是單行注釋//的錯(cuò)誤演示 char a ='//a';
3. 標(biāo)識(shí)符
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ū)分大小寫的編程語(yǔ)言。因此,在 c 中,?manpower? 和 ?manpower? 是兩個(gè)不同的標(biāo)識(shí)符。下面列出幾個(gè)有效的標(biāo)識(shí)符:
mohd zara abc move_name a_123 myname50 _temp j a23b9 retval
4. 關(guān)鍵字
下表列出了 c 中的保留字。這些保留字不能作為常量名、變量名或其他標(biāo)識(shí)符名稱。
auto | else | long | switch |
break | enum | register | typedef |
case | extern | return | union |
char | float | short | unsigned |
const | for | signed | void |
continue | goto | sizeof | volatile |
default | if | static | while |
do | int | struct | _packed |
double | ? | ? | ? |
5. c 中的空格
只包含空格的行,被稱為空白行,可能帶有注釋,c 編譯器會(huì)完全忽略它。
在 c 中,空格用于描述空白符、制表符、換行符和注釋??崭穹指粽Z(yǔ)句的各個(gè)部分,讓編譯器能識(shí)別語(yǔ)句中的某個(gè)元素(比如 ?int?)在哪里結(jié)束,下一個(gè)元素在哪里開始。因此,在下面的語(yǔ)句中:
int age;
在這里,?int? 和 ?age? 之間必須至少有一個(gè)空格字符(通常是一個(gè)空白符),這樣編譯器才能夠區(qū)分它們。另一方面,在下面的語(yǔ)句中:
fruit = apples + oranges; // 獲取水果的總數(shù)
?fruit? 和 ?=?,或者 ?=? 和 ?apples? 之間的空格字符不是必需的,但是為了增強(qiáng)可讀性,您可以根據(jù)需要適當(dāng)增加一些空格。