C語言是什麼?是可以拿來溝通的語言嗎?
本篇文章要來介紹在程式設計領域中相當重要的語言之一 – C語言
如果你唸的是資工系或是想要把程式設計的基礎打穩,那麼Hani推薦你一定要將C語言的基礎打穩,這樣當哪一天需要學習新的語言時,相信我,你一定能夠得心應手!
想要了解C語言的各位,讓我們繼續看下去吧!
C語言的由來
C語言是一種程序式的語言,最初是為了要移植跟開發 UNIX作業系統,由 Ken Thompson 和 Dennis Ritchie(兩位大師都是出自著名的貝爾實驗室),在1972年基於B語言的基礎開發而成。
C語言的主要用途是?
C語言主要就是為了設計作業系統而開發的。
C語言的特色
- 可移植性高
- 32個簡單的保留字 & 簡潔的coding style
- 為編譯式語言,程式的執行效率較直譯式語言來的更好
- 相對於其他更高階的程式語言,C語言可以直接存取和操作記憶體 -> 就是利用指標做到的啦!
而有許多後來的程式語言都多多少少有從C語言身上借用了一些語法&功能。
像是java、PHP、JavaScript…等等,主要都是基於C語言去做開發。
這就是為什麼我會說,只要學會C語言,其他程式語言一定也能快速上手的原因!
C語言的程式架構 – 五大元素

#1 標頭檔(header file)
在撰寫C語言的時候,第一件要做的事情就是載入標頭檔。
標頭檔是一個類似擴充元件的.h檔案,裡面有著C語言相關的函式、巨集的定義,是一個可以被拿來在各個程式中共享的資源檔。
簡單來說就是,載入標頭檔之後,我們就可以使用C語言的函式了!
常用的標頭檔有:
- stdio.h – 定義了主要的Input/Output函式。
- stdlib.h – 定義了數值轉換、記憶體分配的函式。
- string.h – 定義了所有處理字串的函式。
- math.h – 定義了許多常用的數學函式。
在C語言中,載入標頭檔的語法是:
#include <xxxxxx.h>
#2 定義主程式(main function)
main function 是整個C程式的進入點(entry point),也就是說程式會從 main function 的第一行開始執行。
在C語言中,定義main fuction的語法是:
int main()
{ }
#3 宣告變數(Variable)
每個變數都必須被宣告後才能使用,所以一定要記得宣告變數並初始化!
在C語言中,宣告變數的語法是:
int number;
float grade;
char name[20];
#4 程式主體(Body)
程式的主要動作都會撰寫在main function裡面。
可以是任何動作,例如:排序、搜尋、指定、印出…等等。
int main()
{
int number;
printf("%d\n, number);
.
.
}
#5 返回(Return)敘述
每個C語言函式的最後一個環節就是要返回function宣告時所定義的return value,而且要依據function所宣告的資料型態(Data type)去做return。
在C語言中,return的語法是:
int main()
{
int number;
printf("%d\n, number);
return 0;
}
上述main function宣告時是用int,因此在這個例子中我們return的是0。
而這個值不一定要是0,return什麼值取決於函式的設計和目的,只要return的值符合函式宣告時所定義的資料型態就可以了!
第一支C程式 – Hello World!
在程式設計界有一個傳統,學習新的語言時,第一支程式就叫做 – Hello World。
#include <stdio.h>
int main(void)
{
printf("Hello World");
return 0;
}
Output:
Hello World
接下來,我們一行一行來分析
Line #1:[#include <stdio.h>]
在C語言中,以#開頭的語句,都會由預處理器(preprocessor)先行處理,而預處理器是由編譯器(compiler)所控制的。
換句話說就是,先藉由預處理器處理標頭檔之後,我們就可以使用標頭檔中所宣告的函式了!
上述的例子中,preprocessor會將stdio.h中預處理過後的程式碼複製到程式當中,這樣我們就可以使用stdio.h中宣告的所有函數,像是上面用到的printf()就是其中之一。
p.s. stdio -> standard input/output 的縮寫
Line #2:[int main(void)]
在C語言中,通常會從main function的第一行開始執行,也就是程式的進入點。
()中的void:表示main function不需任何參數。
main之前的int:表示main function中返回值的data type。
回傳返回值之後,function就會終止。
Line #3 and #6:[{ and }]
大括號定義出一個範圍,主要是用在函數和流程控制(像是:if…else)的語法當中,所有的function都必須以大括號開頭和結尾。
Line #4:[printf(“Hello World”);]
printf()是標準函式庫中用來印出東西到標準輸出的的函式。
結尾的;(分號)則是表示當行程式碼結束。
Line #5:[return 0;]
回傳返回值,程式終止!
回傳的值是0通常表示程式成功終止。
最重要的是,如何編譯C程式!
其實電腦很笨,看不懂我們寫的C程式,因為電腦的世界只有0 & 1 (binary)。
所以要執行C程式前,必須先透過編譯器將原始碼編譯成機器碼,才可以在電腦上執行!
Hani 常用的編譯器有下面幾種,推薦給大家使用:
#1:ideone
ideone是一個線上的編譯器和除錯工具,功能非常完善,可以編譯60多種語言。
如果只是要測試一小段程式碼,非常推薦直接用ideone,會方便很多!
使用的時候,記得要看看左下角的地方,是不是C語言喔~

#2:CodeBlocks
CodeBlocks是一款具備圖形化介面的C/C++ IDE。
Hani非常推薦初學者使用,其中完整的debug支援能夠讓大家在剛開始學習C語言的時候,快速地從error message中找到問題點。
而且可以跨平台使用,不管是Mac/Windows/Linux通通有支援!

總結
上述就是C語言的完整基礎介紹,希望對正要入門的大家能夠有所幫助。
應該不會看完馬上棄坑逃走吧XDD
如果有任何問題都歡迎在下面留言告訴我哦!
By Hani