C (程式語言)

C程式語言係一隻電腦程式語言，通常淨係叫C。佢係丹尼士列奇響1970年代作畀Unix操作系統用嘅。因為佢兼具高低階語言特徵，所以用途廣泛：由底層操作系統到上層唔同軟件，都可以用C嚟寫。

設計 
C語言設計目標係提供一種能以簡易嘅方式編譯、處理低階記憶體、產生最少嘅機械碼同啲唔需要任何執行環境支援就行到嘅程式語言。縱使C語言有咗好多低階處理嘅功能，但喼住良好跨平台嘅特性，以一個標準規格寫出嘅C語言程式可以喺第啲電腦平台上進行編譯，甚至有埋啲嵌入式處理器同埋超級電腦嘅作業平台。

概述

特性
 C語言係個有結構化程式設計、有變量作用域同遞迴功能嘅程式語言。
 C語言傳遞參數均係以值傳遞，仲可以傳個指針。
 唔同嘅變數類型可以用結構體組合埋。
 得32隻保留字，令變量、函數命名彈性啲。
 部份嘅變量類型轉得，例如整型同字符型變量。
 透過指標等C語言易啲低階控制記憶體。
 編譯預處理畀C語言嘅編譯更具彈性。

語法

Hello World 程序 
下面係一個輸出設備印串字 "Hello, world!" 出嚟嘅簡單程式，通常係初學程式語言嗰陣嘅第一個程式：

include <stdio.h>

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}

了解 
C語言由函數同變量組成，函數就似係Fortran入面嘅子程序同函數。
C嘅程序從 main 開始行。main() 函数會調用同控制第啲函數嚟做嘢，例如上面嘅printf。程式員可以自己寫函數，或從庫中調用函數。喺上面嘅return 0;令到main()畀返個值去調用程序嘅殼層，表明程序成功行完。

一個C語言嘅函數由返回值、函數名、參數列表同函數體組成。函數體嘅語法同啲複合句一樣。

複合句 
C語言複合句嘅格式係：

{
    語句;
    語句;
    /* ... */
}

複合句可以令幾句語句喺文法上變成個語句。

有時複合句係必須嘅，唔用就會產生錯誤。好似用循環語句，萬一有幾句嘢，最好用返括號將佢哋合併做句複合語句。冇複合語句，系統就齋睇第一個分號前嘅內容做成個循環體。

需要注意嘅係，部分C編譯器並唔撐喺任意位置度用複合句。

條件句 
C語言有兩種條件句形式，分别係if同switch。

If 嘅格式係噉：

if(算術式) // 萬一
    語句; 
// 仲有時會else：
else      // 否則
    語句;

算術式嘅值如果唔係零就代表條件係真；如果條件係假嘅，程式會跳過if度嘅語句，直接行之後嘅語句。但係如果if後面有else而條件係假嘅話，程式會跳去else度執行。if同else後面嗰句可以係第個if語句。有呢種套疊式嘅結構先有更複雜嘅邏輯控制流程。喺一般情況下，else實同最近嘅if成啤，所以會成日用啲括弧{}越過呢個限制。比較下面兩種情況：

if(論理式)
    if (論理式)
        語句; 
    else
        語句;
if(論理式A)
{
    if(論理式B)
        語句;
}
else 
    語句;
要注意依度嘅縮進同換行齋係方便啲嚟讀。編譯器唔識依啲縮進層級估個 if 同 else 對應嘅關係。

switch通常用响對幾種有明確值嘅條件。佢要求嘅條件值通常係整數或者字元。同switch搭配嘅條件轉移係case。控制程式會跳到滿足條件嘅case一直向下執行，直到語句完曬或者撞到break。通常用到default將第啲例外嘅情況包埋。如果switch語句入面有唔成立嘅條件，控制程式會跳去default行；冇咗default，就會直接行下句語句。switch係可以嵌套嘅。

switch 個值出嚟
{
  case A:
  case B:
    語句段一; // AB都行緊
    // 第啲句…
    break;  // 跳到去 switch 最後嗰度
  case C:
    語句段二;
    break; 
  default:  // 唔係A、B、C嘅會嚟伊度
}

If句式可以省略成噉：

// 算術式?值1:值2;
// 如:
   a = b>c ? b : c // 如果變數b嘅值大過變數c就將變數b嘅值俾哂變數a

循環句 
C語言有三種循syntaxhighlight句：
do
    語句;
while(判斷式); 

// 同:

while(判斷式) 
    語句;

// 同:

for(初始化;判斷式;算術式)
    語句;

喺while同for入面，語句不斷行直到判斷式嘅值係零。喺do...while語句入面，循環仲會先行一次。呢三種循環結構可以互相轉化：
for(初始化;判斷式;算術式)
    語句;

如果語句冇用continue語句，就相當於
初始化;
while (判斷式) {
    語句;
    算術式;
}

當循環條件一直係真嗰陣，就會產生無窮迴圈。

跳轉句 
跳轉句包括四種：goto、continue、break同return。

goto 標記;

goto語句係無條件轉移句，標記一定要喺當前函數嘅定義，要用標記:嘅格式定義。程式會跳到去標記度繼續執行。由於goto難讀啲，所以對新手嚟講係少用啲。GCC 編譯器拓展撐對指針goto同埋宏內嘅goto，一定程度上增強咗goto嘅可讀性。

continue語句用喺迴圈句入面，作用係完哂前一輪嘅迴圈，即刻開始下一輪迴圈。

break語句用喺迴圈句定switch入面，作用係完咗當前迴圈，跳出循環體外繼續行。但係break跳得一層迴圈。要跳出多重迴圈嗰陣，可以用goto令至程式更為簡潔。

當一個函數行完，要俾返回值嗰陣用return。return可以係個運算式或變數。如果return後面冇值就會乜都唔俾。

C語言嘅變種
 C++
 Objective-C
 C Sharp

攷

程式語言