C語言變數交換三大法:XOR 交換、算術交換與臨時變數法深度對比
三種交換實現 方法一:XOR 交換(推薦,無溢出風險) a = a ^ b; b = a ^ b; // b = (a^b)^b = a a = a ^ b;
位圖固定大小記憶體分配器設計:極致節省小物件開銷的實現詳解
動機:通用分配器對小物件的開銷 new/malloc 每次分配需存儲塊大小、狀態等元數據(通常 8-16 字節),並對齊到 8/16 字節。對 12 字節雙向鏈
進程注入技術原理解析:以 IE 進程為例的 Process Hollowing 實現與防禦視角
聲明 本文僅為**安全研究與防禦教育目的**分析進程注入(Process Hollowing/RunPE)技術原理,**嚴禁用於惡意軟體開發或非授權滲透測試**
C語言 main 函式參數詳解:argc、argv 與 envp 完整解析
標準 main 簽名 int main(int argc, char *argv[]) int main(int argc, char *argv[], cha
不使用比較運算符與循環判斷兩數大小:位運算技巧實現 max 函式
題目限制 不使用 if、?、>、< 等比較/分支語句,僅用位運算實現 max(a, b)。 核心思路:符號位提取 計算差值 diff = a
Shell 文本搜尋實戰:find/xargs、grep 與自定義腳本三種方案詳解
方案一:find + xargs 組合 遞迴搜尋目錄下所有文件: find dir | xargs grep pattern find file | xargs
基於順序存儲的多叉樹實現(五):兄弟遍歷迭代器完整設計
系列背景 本系列實作基於連續記憶體(陣列/向量)的多叉樹容器 mtree。此篇聚焦兄弟遍歷迭代器:訪問給定節點的所有同胞節點(含自身)。 迭代器類型定義 te
C語言函式指針進階:返回函式指針的語法與實戰範例
場景 根據操作碼動態選擇並返回對應的運算函式(加/減/乘),並支援執行前回調顯示操作名稱。 核心語法:返回函式指針的函式宣告 int (*operation(
C語言讀取文件避坑:while(!feof()) 導致最後一行重複讀取的原因與正確寫法
錯誤現象 常見寫法: while (!feof(fp)) { fscanf(fp, %d, &val); // 或 fread proc
C++ 簡易分數類別實作:約分與基本運算封裝
設計目標 實作一個 Fraction 類別,支援分子分母存儲、約分(最大公約數)、顯示與基本建構/賦值操作,作為 C++ 類別設計入門練習。 類別定義與實作
C語言大文件高效讀寫:Windows 記憶體映射檔 實戰詳解
痛點:傳統 I/O 面對大文件的無力 處理幾十 MB 至數 GB 文件時,fread/ReadFile 等傳統方式涉及:用戶態/核心態切換、資料拷貝(核心緩衝→
HDU 1280 前 M 大的數:計數排序優化兩兩求和 Top-M
題目大意 給定 N 個整數(值 ≤ 5000),兩兩求和(N*(N-1)/2 個和),由大到小輸出前 M 個。 關鍵觀察:值域極小 整數 ≤ 5000 → 和
HDU 1029 多數元素:Boyer-Moore 投票演算法 O(1) 空間解法
題目大意 給定 N(奇數)個整數,找出出現次數超過 N/2 的數(多數元素)。保證存在解。 核心演算法:Boyer-Moore 投票法 利用「配對消除」思想:
空物件模式探討:優雅處理「無意義物件」的返回問題
問題場景 函式需返回物件引用,但索引可能無效: const Layer& Frame::GetLayer(uint32 layerIndex) cons
HDU 1217 Arbitrage:弗洛伊德演算法檢測貨幣套利機會
題目大意 給定 N 種貨幣與 M 1)。 解題思路:最大路徑乘積 將貨幣視為圖的節點,匯率為邊權重。問題轉化為:圖中是否存在權重乘積大於 1 的環。 使用 F
C/C++ switch 語句 default 標籤位置與 Fall-through 行為詳解
現象觀察 許多開發者習慣將 default 放在 switch 結尾,但標準允許置於任意位置。若 default 不在末尾且缺少 break,將發生「貫穿」行為
MTK 筆試心得(一):C++ 運算子求值順序與序列點陷阱
前言:輕敵的代價 今年投入求職大軍,抱著累積經驗心態參加 MTK 筆試。自詡熟悉 C++ 進階特性(模板、STL、Boost),卻在基礎題上栽了大跟頭。這篇記錄
深入理解 C++ 返回值優化(RVO 與 NRVO)
前言 這是 MTK 筆試總結系列的第二篇,重點探討 C++ 中極具影響力的編譯器優化技術——返回值優化(Return Value Optimization, R