iOS 開發 C 語言入門 Day 3:變數命名、printf/scanf 進階、型別轉換、運算子與輸入緩衝區機制
前言 本文為 iOS 開發 C 語言入門系列第三天筆記,涵蓋**變數命名規範、格式化輸出入細節、隱性/顯性型別轉換、scanf 緩衝區機制、多變數輸入、變數交換
Windows 獲取網卡 MAC 地址完整實作:IPHLPAPI、GetAdaptersInfo、記憶體管理與現代替代
前言:Windows 系統程式設計經典任務 獲取本機網卡 MAC 地址是授權綁定、設備指紋、網路診斷常見需求。Windows 提供 IPHLPAPI 系列 AP
C++ sscanf 安全使用指南:格式字串匹配、型別對應、記憶體越界陷阱與編譯期檢查
前言:sscanf 看似簡單,實則暗藏殺機 sscanf 從字串解析格式化資料,廣泛用於配置檔、網路協定、日誌分析。但格式字串與實際引數型別不匹配 會導致未定義
C++ 康威生命遊戲 (元胞自動機) 完整實作:雙緩衝演化、經典圖樣、控制台動畫與效能優化
前言:零玩家遊戲的簡單規則與複雜行為 康威生命遊戲:無限二維格子,每細胞生/死由 8 鄰居存活數決定。規則簡單:3 鄰居誕生、2/3 鄰居存活、其他死亡。本文實
C++ 八皇后問題完整實作:回溯法、位運算優化、解計數與棋盤輸出
前言:經典回溯法入門題目 八皇后問題:在 8×8 棋盤放置 8 個皇后,任意兩個不同行、不同列、不同對角線。本文提供標準回溯法實作、位運算優化版 (O(1) 衝
C 語言字串拼接實戰:堆疊 vs 堆積記憶體、snprintf 安全拼接、緩衝區管理策略
前言:字串拼接的記憶體抉擇 C 語言無內建字串型別,拼接需手動管理記憶體。核心權衡:堆疊陣列 (固定大小、自動釋放、無配置失敗) vs 堆積動態記憶體 (任意大
C++ 暫時物件無法綁定非 const 參考:語意限制、編譯器防禦與現代解決方案
前言:經典編譯錯誤的深層原因 void f(int&); f(a+b); // 錯誤:暫時物件無法綁定 int&。這非技術限制 (暫時物件可 修改),而是語意防
C++ 繼承與友元、類型轉換完整指南:友元不繼承、存取層級控制轉換、指標/參考綁定規則
前言:繼承體系中兩大核心機制交互 友元關係不具備傳遞性、不繼承;繼承存取層級 (public/protected/private) 決定衍生類別對基類成員的存取
C++ 繼承中名稱查找規則:遮蔽、using 宣告、靜態類型決定可見成員
前言:名稱查找在編譯期靜態進行 C++ 名稱查找規則決定「某個作用域能看見哪些名稱」。繼承體系中,衍生類別作用域嵌套在基類作用域內,衍生類別同名成員會遮蔽 基類
C 語言柔性陣列成員:結構體尾部零長度陣列、動態記憶體配置與標準化演進
前言:結構體尾部的「變長」祕密 C99 引入柔性陣列成員 (Flexible Array Member, FAM):結構體最後一個成員為無大小陣列 type n
深度解析帶緩衝 I/O 與不帶緩衝 I/O:用戶態緩衝、核心頁面緩存、雙重緩衝機制與實戰差異
前言 「帶緩衝」與「不帶緩衝」是系統程式設計中最易混淆的概念。**關鍵誤區:不帶緩衝 ≠ 核心不緩衝**,而是「用戶態不額外緩衝」。本文從資料流向、系統調用次數
C++ 左值參考與右值參考深度解析:移動語意、完美轉發、參考摺疊與資源管理新範式
前言:C++11 核心特性——值類別與參考綁定規則重構 C++98 僅有「左值」與「右值」二分,參考僅能綁定左值。C++11 引入右值參考 (T&&)、移動語意
C++ rand() 與 srand() 完整指南:偽隨機本質、種子機制、範圍映射公式與現代 前言:rand() 是什麼?不是真隨機 rand() 產生偽隨機數列:線性同餘法 (LCG) 遞推公式 X_{n+1} = (a*X_n + c) % m。序列
C++ 記憶體池實作教學:FreeList 設計、對齊處理、大小分級與 STL 風格分配器介面
前言:為什麼需要記憶體池? 頻繁 new/delete 小物件導致:堆碎片化、分配器鎖競爭、系統呼叫開銷大。記憶體池預先分配大塊記憶體,依大小分級管理空閒鏈表,
C++ 靜態成員變數與靜態成員函數完整指南:定義規則、共享語意、指標相容性與現代替代方案
前言:static 關鍵字在類別中的雙重含義 類別內 static 修飾成員變數/函數,表示「屬於類別本身,而非某個物件」。本文系統整理定義規則、共享機制、存取
C++ String 類別手工實作完整教學:Rule of Five、SSO 優化、運算子多載與移動語意
前言:為什麼要手寫 String? 標準庫 std::string 是工業級組件,但手工實作是理解資源管理、複製/移動語意、小字串優化 (SSO)、運算子多載、
C++ Assert 斷言機制原理、最佳實踐與現代替代方案
前言:斷言是防禦性編程的第一道防線 assert(expr) 在 expr 為假時終止程式並輸出診斷訊息(檔案、行號、運算式文本)。它僅在 Debug 建置生效
C++ 大隨機數生成陷阱:rand() 乘法偏差、位移正確姿勢與跨平台解決方案
前言:RAND_MAX 太小怎麼辦? Windows MSVC RAND_MAX = 32767 (0x7FFF),僅 15 位元。需求大範圍隨機數(如 64