寫在最前面〖部分內容源自gnu-c-manual〗
相信不少初次接觸到c的朋友,都寫過類似如下的**:
#include /* 為了呼叫標準庫的printf函式 */
int main()
看到它時,內心作何感想?愛它,它讓我走上了程式設計之路;恨它,它讓我走上了程式設計之路。
組成c語言源程式的tokens,包含關鍵字、識別符號、常量、操作符和分隔符等。我們來分析一下這段**包含了哪些c語言的元素。
可以看到,五種tokens這段**在這段短短的**中,均有體現。我們知道,乙個c程式至少要定義乙個函式,而這個必須定義的函式正是main(),它的原型可能為以下三者之一:
int main(void);
int main(int argc, char * ar**);
int main(int argc, char * ar**, char * envp);
其原型之中,至少包含了關鍵字、識別符號、分隔符和操作符四種。接下來分別來看一下。
識別符號什麼是識別符號?有什麼用?怎樣表示它呢?
首先,識別符號是多個字元的序列,它用來給變數、函式、新的資料型別和預處理巨集 命名。可以使用字母、數字或下劃線(_)來表示乙個識別符號,但是不能以數字開頭,且大小寫敏感。
1abc 不是識別符號,因為它以數字「1」開頭
foo 和 foo 是不同的識別符號,因為c語言中大小寫敏感
如果使用gnu擴充套件的話,也可以在識別符號中使用美元符號。
關鍵字關鍵字是c語言保留的特殊識別符號,是語言的一部分。我們不能拿關鍵字作其他用途。
[注]有些關鍵字用途未全部列出
關鍵字說明
auto
自動變數,變數超出其作用域後,其生命自動結束
break
用在迴圈語句中,結束當前迴圈,並跳出迴圈體
case
用在switch語句中,構成乙個分支
char
字元型別,基本資料型別
const
常量修飾符
continue
用在迴圈語句中,結束當前迴圈,繼續執行下一次迴圈
default
用在switch語句中,構成預設分支
do與while組合使用,構成do...while迴圈
double
雙精確度實數型別(浮點型別),基本資料型別
else
與if組合使用,構成if...else分支語句
enum
列舉型別,構造型別
extern
用在變數或函式前,表示變數或函式的定義在別的檔案中
與「c」組合使用時, extern "c" 表示告訴編譯器按c規則翻譯函式名
float
單精確度實數型別,基本資料型別
for用於for迴圈結構
goto
用於跳轉語句
if用於分支結構
int整型,基本資料型別
long
長整型,基本資料型別
register
宣告變數為暫存器變數
return
用於返回語句
short
短整型,基本資料型別
signed
有符號型別,預設型別,用於修飾char,short,int,long等小整數或整數型別變數
sizeof
小心啦,這是乙個披著函式外衣的關鍵字,用於計算型別或變數占用記憶體空間的位元組數
static
作用於變數時,修改了其儲存位置和生命週期;作用於函式時,限制了其使用範圍,即僅可被本檔案內的函式呼叫
struct
用於定義結構體,結構型別
switch
與case,default組合,構成分支結構
typedef
定義型別的別名
union
用於定義共用體結構,結構型別
unsigned
無符號型別,與signed相對
void
空型別volatile
定義volatile變數,提示編譯器操作該型別變數時,到變數位址操作,而不是使用快取在其他地方(如暫存器)的值
while
用於while或do...while迴圈中,構成迴圈結構
常量常量是數字或字元的字面值。
我的第乙個C 程式
上機內容 c 程式的編寫和執行 上機目的 掌握簡單c 程式的編輯 編譯 連線和執行的一般過程 我的程式 程式的版權和版本宣告部分 檔名稱 test.cpp 作 者 李明 完成日期 2014 年 10 月 24 日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 無 問題描述 我 的第乙個...
我的第乙個c 程式
上機內容 c 程式的編譯與執行上機目的 掌握簡單c 程式的編輯 編譯 連線和執行的一般過程 我的程式 程式的版權和版本宣告部分 檔名稱 第乙個c 程式 作 者 鄧華偉 完成日期 2017年3月4日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 無 問題描述 無 程式輸出 c 我來了!問...
我的第乙個c 程式
今天的南昌下雪了,而且下了一天,按這趨勢下來,可能要有十厘公尺厚了!好久都沒看過這麼大的雪了,覺得很奇特。但是天氣太冷,一天沒怎麼出去,就在寢室裡呆著,出去吃早餐 玩兩把遊戲 睡覺 點外賣 寫些東西,好像就是一天。真應該認真去外面看看雪。學習c語言有乙個學期了,不得不說,還是學了點東西的 呲牙 至少...