C語言專案實戰:簡易通訊錄系統完整實作 (增刪改查排序)
專案需求 聯繫人欄位:姓名、性別、年齡、電話、地址。 功能:新增、刪除、查找、修改、顯示全部、按姓名排序、退出。 資料結構:固定大小陣列 (10 人) + 計
C語言交換兩數四大法:暫存變數、XOR、加減、乘除完整分析
方法一:暫存變數 (標準、通用、最安全) void swap(int *a, int *b) { int t = *a; *a = *b; *b = t
C語言基礎練習:陣列尋找最大值(含輸入覆蓋陷阱)
原始碼問題 int arr[10] = {1,22,30,4,51,6,7,81,9,10}; for(i=1;i<10;i++) scanf(%d,&arr[
C語言手寫標準庫:memset 與 memcmp 實作詳解
memset 實作:記憶體填充 void *my_memset(void *ptr, int value, size_t num) { unsigned
C語言多執行緒併發陷阱:全域變數非原子累加導致資料競爭
問題現場 100 執行緒各對全域 g_iTestInteger 執行 ++,主執行緒列印結果。預期 100,實際輸出 98~99 不定,且多次執行結果不同。
C語言枚舉 enum 詳解:預設值、指定值與常見陷阱
基本語法 enum OS { WIN, LINUX, UNIX }; // 預設 0, 1, 2 enum OS2 { WIN=1, LINUX, UNIX=1
C語言輸出單雙引號:轉義字元 \' 與 \" 實戰
直接輸出雙引號 printf(\); // 輸出: // 或 printf(%c, ); 直接輸出單引號 printf(\); // 輸出: // 或
C語言 const 與指針:為何 const 變數仍可被修改?
現象 const int n = 10; int *p = (int *)&n; *p = 20; printf(%d\n, n); // 輸出 20 (GCC
C語言轉義字元實戰:路徑字串與 strlen 計算長度
經典錯誤:路徑字串未轉義 八進位 1 正確寫法:雙反斜線 printf(c:\\test\\add\\72_12\\test.c); // 輸出: c:\
C語言轉義字元陷阱:?? 三字母詞 導致輸出異常
現象 printf((Welcome??)); // 輸出: (Welcome] 原因:C 標準定義 三字母詞,??) 會被預處理器替換為 ](右中括號),歷
C語言基礎練習:用 for 與 while 迴圈計算 5! (階乘)
題目 分別使用 for 與 while 迴圈計算 5 的階乘 (5! = 120)。 方法一:for 迴圈 #include <stdio.h>
C語言遞迴實作冪函數 n^k(含靜態變數陷阱分析)
原始碼問題分析 1) { k--; number_power(n, k); } return num; } 嚴重缺陷:static int num =
C語言經典演算法:篩選 100~200 間的質數(素數)
演算法核心:試除法優化 判斷 n 是否為質數,只需試除到 √n。進一步優化: 排除偶數(從 101 開始,步進 2)。 除數也只試奇數(從 3 開始,步進 2
C語言三種方法輸出整數每一位:字串法、取模法、遞迴法
題目 輸入一個整數(可正可負),逐位輸出其十進位數字,並統計位數(不計負號)。 方法一:字串處理法(最直觀、支援負數、極大數) #include <st
C語言指針核心概念:從地址到多級指針的完整圖解
什麼是指針? 指針 = 記憶體地址。每個位元組擁有唯一編號(地址),透過地址可定位資料。指針變數則是「存放地址的變數」。 比喻:房間號「301」是地址(指針),