C++ delete 與 delete[] 差異詳解與常見錯誤
delete vs delete[]:正確釋放動態記憶體 核心原則:new 配對 delete,new[] 配對 delete[]。錯誤搭配會導致未定義行為、記
C++ 中 cout 語句背後的棧幀與求值順序探秘
現象觀察 考慮如下代碼片段: int a = 5; cout << a << endl << abs(a) << abs({ cout = ? a : - }
Windows C++ Socket 伺服器 (1):Winsock2 與 C++11 實作
Windows 下 C++ Socket 伺服器開發指南 (一) 基於 Windows 平台,使用 winsock2.h 並結合 C++11 特性(如 std:
Windows 目錄監控:ReadDirectoryChangesW 實作
Windows 目錄監控程式實作 利用 Windows API ReadDirectoryChangesW 實現即時監控目錄下的文件變更(建立、刪除、重命名、屬
C++ 建立 Socket Server (Linux 環境)
Linux 下 C++ Socket 伺服器基礎實作 本文展示在 Linux 環境下使用 C++ 建立 TCP Socket 伺服器的核心步驟與代碼片段。 必
C++ 交換兩個元素的值:傳指標、傳參考與傳指標參考的差異
C++ 中交換兩個變數值的三種方式深度解析 交換兩個元素的值,主要有傳指標和傳參考兩種基本方式。這裡需要特別注意:參考一旦定義必須初始化,且綁定後不能改變綁定對
化繁為簡系列原創軟體:Fucking Bird 小遊戲
原創小遊戲:Fucking Bird - 致敬 Flappy Bird 前陣子朋友介紹了近期爆紅的遊戲《Flappy Bird》。工作之餘,我花了三天時間開發了
LeetCode 141 環形鏈表:快慢指針法完整解析
題目回顧 給定單向鏈表頭節點 `head`,判斷鏈表中是否有環。無法修改鏈表,空間複雜度最好 O(1)。 思路演進 嘗試 1:記錄訪問節點(哈希集合) 時間
GCC 編譯流程全解析:從原始碼到執行檔的四大階段
概覽 GCC 編譯非單一步驟,而是**四個階段**的管線流程: 前置處理 → .i 編譯 → .s 組譯 → .o 連結 → 執行檔 逐階段詳細解析 1
STL 記憶體輔助操作實作:uninitialized_copy、uninitialized_fill 等核心函式解析
背景 STL 容器在配置記憶體時,需區分「原始記憶體分配」與「物件建構」。`` 頭檔提供一組底層演算法,在未初始化記憶體上直接建構物件,避免預設建構再賦值的開銷
C++ 檔案 I/O 完整指南:ofstream、ifstream、fstream 詳解
三大檔案流類別 類別用途繼承自 ofstream輸出(寫入)檔案ostream ifstream輸入(讀取)檔案istream fstream讀寫檔案ios
陣列與指標:何時等同、何時不同?深度解析
核心結論 **陣列不是指標**,但在大多數「表達式」中,陣列名會**隱式轉換**為指向首元素的指標。這是 C 語言最易混淆的核心機制。 等同場景:表達式中的隱
Linux Socket 程式設計:用 select 實作連線逾時機制
應用場景 伺服器需偵測客戶端在指定時間(如 5 秒)內無資料傳送,則主動斷開連線,釋放資源。`select` 的 timeout 參數完美支援此需求。 核心程
詞頻統計小程序:鏈表存儲 + 自定義排序輸出 Top 10
需求分析 讀取英文文本文件,統計單詞出現頻率(不區分大小寫,忽略標點),輸出前 10 高頻詞。 數據結構設計 **鏈表節點**:string word; i
C++ inline 內聯函數完全指南:原理、優缺點與最佳實踐
什麼是內聯函數 inline 函數是在編譯階段將函數本體**直接展開**至呼叫點,消除函數呼叫開銷(參數壓棧、跳轉、返回)。定義在類別內的成員函數預設為內聯。
C 語言複雜宣告解析:從「右左法則」到實戰技巧
前言 C 語言的宣告語法以「聲明模仿使用」聞名,但複雜宣告(如函數指標陣列、指標函數等)常讓人抓狂。本文介紹經典的「右左法則」(Clockwise/Spiral
STL 排序算法全解析:從 sort 到 nth_element 的選擇指南
前言:為何必須掌握 STL 排序 資料結構與演算法是程式設計師的內功。幸運的是,STL(標準模板庫)已將成熟的演算法封裝完備,從向量、列表到堆疊、隊列,從搜尋到