首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言字元與字串本質差異:char vs 字元陣列

     編輯:關於C語言

核心結論

C 語言只有字元型別 (char),沒有字串型別。

字元型別 (char)

  • 佔 1 byte (8 bits),帶號整數 (通常 -128~127)
  • 儲存 ASCII 碼 (0~127) 代表字元
  • 本質是最小整數型別,可參與算術運算

字串的實現:字元陣列 + 結束標記

  • 連續 char 陣列儲存字元序列
  • **以 '\0' (NUL, 數值 0) 結尾**標示字串結束
  • 標準庫函式 (strlen, strcpy, printf("%s")) 依賴此約定

記憶體圖解

char str[] = "Hi";
// 記憶體佈局:
// 索引:  0    1    2
// 值:  'H'  'i'  '\0'
// 大小:  3 bytes

常見誤區

誤區正確認知
char *p = "abc"; 以為是字串型別指向常數區字元陣列的指標,型別仍為 char*
char c = "a"; 雙引號賦值給字元錯誤!雙引號是字串字面常量 (型別 const char[2]),單引號 'a' 才是字元常量
以為 sizeof("abc") == 3sizeof("abc") == 4 (含結束 \0)

理解「字串 = 字元陣列 + \0 結尾」是掌握 C 字串操作、避免緩衝區溢位、正確使用標準庫函式的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved