C 語言快速導覽 - 基本概念

我們先用一個簡單範例講解 C 程式的基本概念
#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 則留言:

Scc 提到...

Thank you editor , It is very clear for beginners like me to learn.