C 語言語義陷阱:陣列與指標的訪問差異
前言 陣列與指標是 C 語言最核心也最易混淆的概念。許多教材僅說「陣列名是指標」,實則過度簡化。本文從 **宣告與定義**、**記憶體訪問機制**、**編譯器處
深入理解 C 語言陣列與指標:記憶體視角的差異與聯繫
前言 承接上一篇《語義陷阱——陣列與指標》,本文從記憶體存取機制的更深層次,剖析陣列與指標的本質差異、何時可互換、以及為何函數參數會「退化」為指標。 何時陣列
C 語言函數動態調用實作 (參考 UnderC 專案)
前言 本文展示一個在 Windows x86 平台上,透過內嵌組合語言實現的 C 函數動態調用機制。可支援 __stdcall、__cdecl、thiscall
Linux C 編程實戰入門:從環境搭建到 Eclipse CDT 開發
環境準備 系統:Ubuntu 10.10(建議使用 LTS 版本) 核心工具:sudo apt-get install build-essential(含 G
解決 Linux 下 memcpy 段錯誤:字符串字面量只讀陷阱
問題現象 int main() { char *a = 11111111; char *b = 2222222; memcpy(a, b
Beej 網絡編程指南(一):Socket 編程入門導讀
指南定位 面向:剛開始 Socket 編程、了解 C 語言的開發者 非:完整參考手冊、高級網絡理論教材 風格:程序員視角、實戰導向、非逐字翻譯 平台與編譯
C 語言內功修煉與軟件工程:從獨孤九劍到降龍十八掌
兩種程序員的分野 維度內功派(底層實現)招式派(軟件工程) 關注點算法、數據結構、內存、硬件特性架構設計、接口規範、業務邏輯、維護性 優勢寫出高效、極致
C++ 自定義輸入迭代器:line_iterator 實現與應用
背景:STL 迭代器模式優勢 標準算法 sort、copy 配合容器和迭代器,代碼極其簡潔: vector<string> v; string te
數值計算經典算法 C++ 實現:牛頓法、高斯消元、拉格朗日插值
1. 牛頓迭代法求實根 求 x³ - 3x - 1 = 0 在 2 附近的根,精度 1e-4。 代碼採用二分法輔助確定初始區間,再迭代 x_{n+1} = x_
Windows 下獲取本機 IP 地址:Winsock 實現
核心邏輯 WSAStartup() 初始化 Winsock gethostname() 取本機主機名 gethostbyname() 解析主機名得 HOSTE
Beej 網絡編程指南第 2 部分:Socket 概念與兩大類型
什麼是 Socket Socket = 文件描述符。Unix 哲學:「一切皆文件」。網絡連接、管道、終端、磁盤文件統一用 int fd 操作,read()/wr
Beej 網絡編程指南(三):網絡理論與分層模型
數據封裝:網絡通信的核心過程 數據從應用層向下傳遞,每層添加首部(或尾部): 應用數據 (TFTP) ↓ 封裝 TFTP 首部 傳輸層數據 (UDP)
Beej 網絡編程指南第 4 部分:IP 地址基礎、子網掩碼與端口
IPv4 與 IPv6 地址格式 IPv4:32 位,點分十進制,如 192.0.2.111 IPv6:128 位,冒號十六進制,如 2001:0db8:c9
C 語言去重字符串集合:排序法與二叉樹法對比
問題背景 給定字符串數組,去除重複項並保持原始輸入順序。C 標準庫無現成 Map/Set,需自行實現。 方案一:排序 + 標記法 數據結構 struct No
Beej 網絡編程指南第 5 部分:字節序、Socket 結構體與地址存儲
字節序轉換函數 網絡傳輸統一使用大端序,主機序視 CPU 而定。四大轉換宏: 函數含義適用 htons()Host → Network Short16 位端口
Beej 網絡編程指南第 6 部分:IP 地址轉換與私有網絡
現代地址轉換 API 廢棄 inet_addr()/inet_ntoa(),統一使用雙棧函數: 文本 → 二進制:inet_pton() struct soc