C語言基本的概述

接下來我們來看一隻基本的C語言程式 我們在昨天建立的資料夾中新增test2.c檔案 並且寫下

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int num;
    num = 2;
    printf("I have %d cats.\n", num);
    printf("You have %d cats, too.\n", num);
    system("read -p 'Press Enter to continue...'");
    return 0;
}

接著存檔、編譯執行看看。 應該可以看到下面有兩行輸出

I have 2 cats.
You have 2 cats, too.

別急,我們來一一解釋

第一行 #include <stdio.h>

這行代表的是告訴電腦將stdio.h這個檔案包含進去,這個檔案是 standard input/output 的縮寫,也就是標準輸入與輸出,只要是C語言有關輸入與輸出函數的格式,都是定義在這個檔案之中,因為我們的程式中有使用到printf(),而printf()是定義在stdio.h,所以我們需要將stdio.h包含進來。

第二行 #include <stdlib.h>

這行與第一行相同,只是system()函數是定義在stdlib.h中,所以我們要將他包括進去。特別注意: 昨天我們在test.c中有使用到system(pause) 今天我們寫的是system("read -p 'Press Enter to continue...'") 這兩行功能相同,都是將執行畫面暫停,讓我們可以看到程式執行的情況。只是作業系統使用的指令不同

第三行 int main(void)

我們在這定義了main()函數,定義的範圍從第四行的{ 到第十一行的 }為止。習慣上我們將main()稱為主函數,因為是程式開始的起點,並且每一個獨立的C程式都必須要有main()才能執行。

而int 是表示main()有一個傳回值,傳回的型態是整數(integer)。main()括號中的void則是代表main()不需要任何的引數。

void有空無一物之意。

第五行 int num

宣告num是一個整數型態的變數,C語言需要在使用變數之前先宣告其型態。

第六行 num = 2

把整數2設定給整數變數num存放。

第七行 printf("I have %d cats.\n", num)

printf()是一個函數,先將%d以num值取代,接著將雙引號之間的文字輸出在螢幕上。 所以就會變成 I have 2 cats.\n \n 是換行符號

第八行 printf("You have %d cats, too.\n", num)

與第七行相同。

第九行 system("read -p 'Press Enter to continue...'")

程式執行完畢後會自己關閉視窗,所以我們必須讓系統下這行指令,使程式暫停。

第十行 return 0

可由main()函數回傳整數0,數值由系統接收,習慣上回傳0代表程式執行成功。若有其他整數,可能程式出了狀況。

也因為我們要回傳整數0,所以我們在前面有定義 main() 是int。

詳讀

include

接著我們來看看剛剛寫的include。 stdio.hstdlib.h這種檔案我們稱為標頭檔(header file),之所以稱為標頭檔,是因為他們被包括在程式碼的起頭。 當程式加入

#include <標頭檔>

在程式編譯的時候就會將檔案的內容取代 #include <標頭檔>

那有人會問,使用標頭檔會使程式肥大嗎? 答案是不會,編譯器只會去依照撰寫內容去截取需要的資訊。

主函數main()

C程式是由相當多函數所組合,包括main()與printf()都是C語言所提供標準函數,main()是不可缺的函數,是程式執行的開端。

變數

想要宣告一個可以存放整數的變數,變數名稱為num

int num

也可以多個宣告

int num1, num2, num3

變數資料型態

有字元(char), 整數(int), 長整數(lang), 短整數(short), 浮點數(float), 倍精度浮點數(double)等型態,也可以決定變數為有號(sign), 無號(unsigned), 有號可以存放正數或負數,無號只能存放正數。

變數設值

我們可以在宣告的同時設定值

int num = 2;

也可以先宣告再設定

int num; num = 2;

結語

今天我們從一個基本的C程式去看看到底是怎麼執行的,也看到基本的C程式構成,下次我們就來介紹基本的資料型態!其實書中還有提到許多,但我只節錄一些我自己想要記下的,所以如果想知道更詳細的資料或想更深入學習,還是建議去買本書喔!

參考書籍

C語言教學手冊-洪維恩