首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言入門基礎:從 Hello World 到核心語法精要

     編輯:關於C語言

C 語言簡介

C 語言是通用的、過程式的程式設計語言,由丹尼斯·里奇於 1972 年在貝爾實驗室開發,用於重寫 UNIX 作業系統。以高效、靈活、接近硬體著稱,是現代計算機科學的基石,廣泛應用於作業系統、嵌入式系統、編譯器、數據庫、網絡服務等領域。

第一個程式:Hello World


#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}
  • #include <stdio.h>:引入標準輸入輸出庫
  • int main(void):程式入口,返回整數狀態碼
  • printf:格式化輸出函數
  • \n:換行轉義字元

核心語法要素

1. 資料型別

類別關鍵字典型大小範圍/用途
整數char, short, int, long, long long1, 2, 4, 4/8, 8 字節有符號/無符號 (unsigned)
浮點數float, double, long double4, 8, 10/16 字節單/雙精度 IEEE 754
無類型void-函數無返回、通用指針
衍生指針、陣列、結構體、聯合體、枚舉-構建複雜資料結構

2. 變數與常量


int age = 25;           // 變數定義並初始化
const double PI = 3.14159; // 常量 (唯讀)
#define MAX 100         // 宏常量 (預處理替換)

3. 控制流程

  • 條件:if-else, switch-case, 三元運算子 ?:
  • 迴圈:for, while, do-while
  • 跳轉:break, continue, goto (慎用), return

4. 函數


// 聲明
int add(int a, int b);

// 定義
int add(int a, int b) {
    return a + b;
}

// 調用
int sum = add(3, 5); // 8

支援遞歸、函數指針、可變參數 (stdarg.h)。

5. 指針與內存管理

  • & 取地址,* 解引用
  • 動態分配:malloc, calloc, realloc, free (<stdlib.h>)
  • 指針運算、指針陣列、多級指針、函數指針

6. 結構體與聯合體


struct Student {
    char name[32];
    int id;
    float score;
};

union Data {
    int i;
    float f;
    char str[20];
}; // 共享內存,同一時刻僅一成員有效

7. 預處理器

  • #include、#define、#undef
  • 條件編譯:#if, #ifdef, #ifndef, #else, #elif, #endif
  • 宏函數、字串化 (#)、標記連接 (##)

8. 文件操作


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

學習路線建議

  1. 基礎語法 → 指針/內存 → 資料結構/演算法 → 系統程式設計 (Linux/Unix API)
  2. 必讀經典:《C 程式設計語言》(K&R) 、《C 專家編程》、《C 陷阱與缺陷》、《Linux C 一站式編程》
  3. 實戰專案:實現簡易 Shell、HTTP 服務器、記憶體分配器、編譯器前端

總結

C 語言簡潔而強大,掌握它能建立扎實的計算機系統底層認知。重點攻克指針、內存佈局、編譯鏈接、未定義行為四大核心難點,養成編譯警告零容忍、邊界檢查、資源釋放的工程習慣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved