#include <stdio.h> int main(void) { char name[20]; printf("請輸入你的英文暱稱: "); scanf("%s", name); printf("Hello,%s!今天好嗎?\n", name); return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:simple.c 功能:簡單的程式範例 作者:張凱慶 時間:西元2010年4月 */
先來編譯執行看看
嗯, say hello !我們看到程式的第一行
#include <stdio.h>
利用井字號 # ,後頭接著 include ,這是 C 語言裡前置處理器的一種,主要用途為引入其他的程式檔案。這裡用角括號 < > 圍起來的 stdio.h ,這是標準函數庫中的標頭檔,其內定義有關基本輸入、輸出的相關功能。
角括號 < > 跟數學所用的小於、大於運算子是相同的符號。
引入標準函數庫的標頭檔使用角括號,若是引入自行定義的標頭檔或程式檔案則用雙引號 " " 圍起來,如
#include "YourFile"
接下來我們看到程式的第 3 行
int main(void)
C 程式由函數所組成,每個可執行的 C 程式原始碼中必須要有個 main 函數,因為編譯器會自動將 main 函數設成程式的起始點,倘若程式中少了 main 函數,編譯時便會發生錯誤。
函數可以有回傳值,也可以沒有回傳值。若是有回傳值,需要在定義函數時同時標明,此例中
int main(void)
表示 main 函數回傳一個整數, int 在 C 語言裡屬於關鍵字,其為 integer 的前三個字母縮寫,代表基本資料型態中的整數型態。
main 函數後面的小括弧中為參數列,這是說,呼叫函數時可以同時傳遞參數給函數以進行計算, void 也是關鍵字之一,這裡表示空的參數列, void 也可用為宣告沒有回傳值的函數。
第 4 行底下大括弧 { } 圍起來的 5 到 12 行,便是 main 函數的內容。這個函數的功能很簡單,就是要求使用者輸入暱稱,然後向使用者打招呼。首先,自然要有存放使用者輸入暱稱的變數,第 5 行
char name[20];
便是宣告一個字元陣列的陳述,所謂的陳述是函數內執行的基本單位, C 語言中每一行以分號 ; 結尾的都是一句陳述。
這裡的字元陣列是用來儲存使用者從鍵盤上的輸入,陣列是 C 語言衍生資料型態之一,這種資料型態是同質的資料結構,這意思是說,陣列可儲存多個相同資料型態的資料,至於陣列中可儲存多少相同資料型態的數量,須宣告時指定。
此例中 char 亦為指定資料型態的關鍵字之一,其為字元型態。 C 語言中的字元型態使用 ASCII 編碼,因此每一個字元型態的資料與某一個特定的 ASCII 編碼相對應。
char 隨後緊接著是陣列名稱 name ,同時緊接中括弧 [ ] ,表示這是一個陣列。中括弧中的數字 20 指定這個陣列的大小,因此陣列 name 可以存放 20 個 ASCII 編碼的字元。
接下來的第 11 行
printf("請輸入你的英文暱稱: ");
以及第 14 行
printf("Hello,%s!今天好嗎?\n", name);
呼叫標準函數庫中的 printf() 函數,其作用為輸出資料串流到標準輸出裝置上,標準輸出裝置通常是螢幕。 printf() 函數最少需要一個字串作為參數。所謂的字串就是用雙引號 " " 圍起來的連續文字資料, C 語言中,字串也就是字元陣列,因此可用代表字元陣列的變數操作字串。
第 14 行中出現的 %s ,這是 C 語言格式化輸出的功能,這表示這地方是一個變數值,型態為字串,字串後加上逗點,隨後再加入所欲顯示的變數。
然後第 8 行
scanf("%s", name);
這是呼叫標準函數庫中的 scanf() 函數,用來從標準輸入裝置輸入資料,標準輸入裝置通常是鍵盤。 scanf() 函數採用格式化輸入,以雙引號圍住所要輸入的資料型態,此例中的 %s 為字串,然後加上逗點,隨後再加入準備存放輸入資料的變數。 scanf() 函數用來存放資料的變數必須用指標,但由於陣列名稱等同指標,所以無須加上取址運算子 & 。
第 12 行為 return 陳述, return 也為關鍵字之一,作為函數執行結束回傳數值之用。此例中用作函數 main 回傳整數 0 給作業系統,表示程式順利執行到結束。
第 15 到 20 行
/* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:simple.c 功能:簡單的程式範例 作者:張凱慶 時間:西元2010年4月 */
這是程式的註解。 C 語言的註解用斜線加星號 /* 開始,然後到星號到斜線 */ 結束,可以跨行,註解的目的是對程式原始碼的附加說明,編譯器會忽略所有的註解文字。另外, C語言也可以用連續兩條斜線 // 的單行註解方式,如
//這是註解的第一行 //這是註解的第二行 //這是註解的第三行
1 則留言:
Thank you editor , It is very clear for beginners like me to learn.
張貼留言