C 語言是通用的、過程式的程式設計語言,由丹尼斯·里奇於 1972 年在貝爾實驗室開發,用於重寫 UNIX 作業系統。以高效、靈活、接近硬體著稱,是現代計算機科學的基石,廣泛應用於作業系統、嵌入式系統、編譯器、數據庫、網絡服務等領域。
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
#include <stdio.h>:引入標準輸入輸出庫int main(void):程式入口,返回整數狀態碼printf:格式化輸出函數\n:換行轉義字元| 類別 | 關鍵字 | 典型大小 | 範圍/用途 |
|---|---|---|---|
| 整數 | char, short, int, long, long long | 1, 2, 4, 4/8, 8 字節 | 有符號/無符號 (unsigned) |
| 浮點數 | float, double, long double | 4, 8, 10/16 字節 | 單/雙精度 IEEE 754 |
| 無類型 | void | - | 函數無返回、通用指針 |
| 衍生 | 指針、陣列、結構體、聯合體、枚舉 | - | 構建複雜資料結構 |
int age = 25; // 變數定義並初始化
const double PI = 3.14159; // 常量 (唯讀)
#define MAX 100 // 宏常量 (預處理替換)
if-else, switch-case, 三元運算子 ?:for, while, do-whilebreak, continue, goto (慎用), return
// 聲明
int add(int a, int b);
// 定義
int add(int a, int b) {
return a + b;
}
// 調用
int sum = add(3, 5); // 8
支援遞歸、函數指針、可變參數 (stdarg.h)。
& 取地址,* 解引用malloc, calloc, realloc, free (<stdlib.h>)
struct Student {
char name[32];
int id;
float score;
};
union Data {
int i;
float f;
char str[20];
}; // 共享內存,同一時刻僅一成員有效
#include、#define、#undef#if, #ifdef, #ifndef, #else, #elif, #endif#)、標記連接 (##)
FILE *fp = fopen("data.txt", "r");
if (fp) {
char line[256];
while (fgets(line, sizeof(line), fp)) { ... }
fclose(fp);
}
# GCC 編譯
gcc -Wall -Wextra -O2 -std=c11 main.c -o main
# 除錯
gcc -g main.c -o main
gdb ./main
# 靜態分析
cppcheck --enable=all main.c
clang-tidy main.c
C 語言簡潔而強大,掌握它能建立扎實的計算機系統底層認知。重點攻克指針、內存佈局、編譯鏈接、未定義行為四大核心難點,養成編譯警告零容忍、邊界檢查、資源釋放的工程習慣。