《C程序設計語言》(第 2 版):K&R 經典權威教程介紹
《The C Programming Language》(中文版《C程序設計語言》)由 C 語言設計者 **Brian W. Kernighan** 與 **D
純 C 語言遞歸查找數組最大值:教學示例與迭代優化
本文展示一個純 C 遞歸函數查找數組最大值,雖邏輯正確但存在嚴重效率與語法問題,作為遞歸教學反面教材,並給出正確遞歸寫法與迭代最優解。 原文代碼問題分析 //
純 C 語言分治法查找第 K 小元素:快速選擇算法實現
在無序數組中查找第 K 小元素,排序法 O(N log N),快速選擇算法(QuickSelect)平均 O(N)、最壞 O(N²)。本文給出基於快速排序 pa
純 C 語言分治法解決假幣問題:O(log N) 邏輯與源碼
經典假幣問題:N 枚硬幣中有一枚較輕,天平無砝碼,僅能比較兩堆重量。分治策略:每次將硬幣分為兩堆(奇數時留一旁),稱重較輕那堆遞歸,直至剩 1 枚。時間複雜度
純 C 語言遞歸實現二進制轉十進制:字符流處理源碼解析
本文展示一個純 C 遞歸函數,從標準輸入讀取字符流(以 # 為起止標記),逐字符處理將二進制數轉換為十進制整數。代碼雖簡短,但涉及遞歸參數傳遞、指針解引用、AS
C語言實現 Ping 功能:原始 Socket 構造 ICMP 回顯請求完整源碼
本文提供一個跨平台(Windows/Linux)的 ping 核心實現,使用原始 Socket (SOCK_RAW, IPPROTO_ICMP) 手工構造 IP
純 C 語言遞歸實現組合數計算:C(m,n) 源碼解析
組合數 C(m,n) = m! / (n!(m-n)!) 遞歸定義:C(m,n) = C(m-1,n) + C(m-1,n-1),邊界 C(m,0)=C(m,m
C語言可變參數函數實現原理與實戰:va_list 完整指南
printf、scanf 等函數如何支持不定數量參數?C 標準庫提供 <stdarg.h> 宏(va_start、va_arg、va_end、va_
C語言 memset/memcpy 陷阱:size_t 無符號特性與緩衝區邊界錯誤
memset、memcpy 等內存操作函數是 C 程序員的「家常便飯」,但其參數類型 size_t(無符號)與指針算術的微妙交互,極易導致驚人的邊界錯誤。本文深
C語言陷阱:Unicode 編譯下 CreateProcess 參數類型不匹配導致崩潰
從 MSDN 複製的 C 代碼調用 CreateProcess 啟動計算器,Unicode 編譯下編譯通過但運行崩潰,C++ 編譯直接報錯。根因是字符串字面量類
POJ 1698 Alice's Chance:最大流建模解決電影拍攝調度問題
某導演要在 K 周內拍完 N 部電影,每部電影每周有固定可拍攝天數,且必須在第 Ki 周前殺青。問是否存在可行調度。本質是二分圖最大流建模:電影 → 可用天 →
POJ 1273 Drainage Ditches:Dinic 最大流算法模板題詳解
經典最大流入門題:N 個節點、M 條有向邊,每邊有容量上限,求從源點 1 到匯點 N 的最大流量。標準 Dinic 算法(分層圖 + 當前弧優化 + DFS 阻
UVA 11106 Rectilinear Polygon:直角多邊形周長計算與有效性判斷
給定 N 個點(N ≤ 10^5),判斷能否將它們連成一個所有內角為 90°/270° 的簡單多邊形(即邊平行坐標軸,無自相交,無三點共線),若能則輸出周長,否
HDU 3436 Queue:Splay 树離散化區間維護詳解
本題要求維護一個 1..N 的隊列,支持三種操作:top x(將編號 x 移至隊首)、query x(詢問編號 x 當前位置)、rank x(詢問第 x 位置的
ZOJ 1005 Jugs 經典水壺問題:模擬與 BFS 兩種解法解析
《虎膽龍威 3》同款經典水壺謎題:給定容量互質的兩壺 A、B 及目標量 N,僅允許「裝滿、倒空、互倒」操作,求使 B 壺恰好盛 N 加侖的操作序列。本文提供貪心
C語言指針原理(四十七):內存洩露的三種經典模式與鏈表演示
內存洩露是 C/C++ 程序最常見的嚴重缺陷。本文總結內存洩露的三大經典模式,並通過鏈表操作代碼逐一演示,幫助開發者建立敏銳的洩露嗅覺。 模式一:垃圾內存——
C語言指針原理(四十八):懸空指針形成與危害實戰演示
本文通過鏈表操作實例,直觀演示懸空指針的形成過程:指針非空但指向已釋放/無效內存地址。這是 C/C++ 開發中最隱蔽、破壞力最強的內存錯誤之一。 懸空指針定義
C語言指針原理(四十九):共享內存導致的內存洩露與懸空指針演示
本文通過具體代碼演示內存洩露的第三種常見場景:多個指針共享同一塊內存,因其中一個指針釋放該內存,導致其他指針成為懸空指針。這是鏈表等動態數據結構中極易犯的錯誤。