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

C語言數據類型全景圖:四大類別、基本類型與結構分類速查

     編輯:關於C語言

C 語言變量定義包含三維屬性:數據類型、存儲類型、作用域。本文聚焦數據類型分類體系,梳理四大類別與基本類型細節,建立類型系統全局認知。

四大數據類別

類型分類圖

類別核心特徵包含類型
基本類型值不可再分解,自我說明整型、浮點型、字符型、枚舉型
構造類型由已定義類型構造,可分解為成員/元素陣列、結構體、共用體
指針類型值為內存地址,雖似整數但語意完全不同各類型指針、void*、函數指針
空類型無返回值函數的類型標記void

基本類型深度解析

1. 整型

  • int、short、long、long long (C99)
  • 有符號/無符號:signed / unsigned
  • 定寬類型 (C99 stdint.h):int32_t、uint64_t 等 —— 跨平台首選。

2. 浮點型

  • float (單精度,通常 4B,~7 位有效數字)
  • double (雙精度,通常 8B,~15 位)
  • long double (擴展精度,平台相關)

3. 字符型

  • char (1 字節,實為小整數,存 ASCII/UTF-8 碼值)
  • signed char / unsigned char (明確有符號性)
  • 寬字符:wchar_t、char16_t、char32_t (C11)

4. 枚舉型

enum Color { RED, GREEN, BLUE };  // 常量 0,1,2
enum Color c = RED;

本質是整型常量集合,增強可讀性與類型檢查(C++ 強類型,C 弱類型)。

構造類型速覽

類型關鍵字記憶體佈局典型用途
陣列type name[N]連續、同類型元素批量同類數據
結構體struct連續、異類型成員實體建模、記錄
共用體union重疊、同一地址省記憶體、類型轉換

指針類型核心觀念

  • 指針 ≠ 整數: 雖同樣佔 4/8 字節,但指針攜帶類型資訊(指向何種對象),決定解引用行為、指針算術步長。
  • void*:通用指針,無類型資訊,需強轉後使用。
  • 函數指針:int (*fp)(int, int),回調、狀態機核心工具。

空類型 void

  • 函數無返回值:void func()。
  • 無參數:void func(void) (C 標準寫法)。
  • 通用指針基礎:void*。
  • 不可定義 void 變量(無大小),但可轉型為 char* 做字節操作。

類型聲明語法精髓:右左規則

int *p;           // p 是指向 int 的指針
int *p[10];       // p 是陣列,元素為 int*
int (*p)[10];     // p 是指向 int[10] 的指針
int *func();      // func 返回 int*
int (*func)();    // func 是指向函數的指針,函數返回 int

讀法:從變量名出發,先右後左,遇括號優先處理括號內。

總結

掌握四大類別定位、基本類型精確語意、構造/指針/空類型核心機制,能在變量聲明、函數簽名、記憶體操作、跨平台移植等環節做出正確類型決策,避免隱性轉換、對齊、溢出等經典陷阱。

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