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

C 語言數據類型體系全景圖解

     編輯:關於C語言

四大類型類別

C 語言數據類型分為:基本類型、構造類型、指針類型、空類型。

C語言數據類型分類圖

1. 基本類型

不可再分解的原子類型,直接映射硬件存儲單元:

  • 整數族:char、short、int、long、long long(含 signed/unsigned 變體)
  • 浮點族:float、double、long double
  • 特殊:_Bool (C99)、void(無類型)

特點:值不可再分解,大小固定(依實現),運行效率最高。

2. 構造類型

由基本類型或其他構造類型組合而成,值可分解為「成員」或「元素」:

3. 指針類型

存儲內存地址的特殊類型,實現間接訪問:

  • 聲明:int *p; struct Node *next;
  • 運算:& 取址、* 解引用、-> 成員訪問
  • 算術:指針 ± 整數(按類型大小步進)、指針 - 指針(得元素數)
  • 特殊:void* 通用指針、函數指針、NULL 空指針

核心價值:動態內存管理、數據結構鏈接、函數回調、多態基礎。

4. 空類型

void 表示「無值」:

  • 函數返回類型:void func() 無返回值
  • 函數參數:void func(void) 無參數
  • 指針類型:void* 通用地址持有者
  • 表達式:(void)expr 顯式丟棄值

類型修飾符

類型關鍵字特點
數組[]同類型元素連續存儲,固定長度,下標訪問
結構體struct異構成員聚合,成員可為任意類型,支持嵌套
共用體union成員共享內存,同一時刻僅一個成員有效,節省空間
枚舉enum命名常量集合,本質為整型,增強可讀性

類型定義與別名

typedef unsigned long uint32;     // 類型別名
typedef struct { int x, y; } Point; // 結構體別名

sizeof 運算符

  • 編譯期計算類型/表達式佔用字節數
  • sizeof(int)、sizeof arr、sizeof a + b
  • 返回類型 size_t(無符號整數)

實踐建議

  1. 優先使用固定寬度類型(int32_t、uint64_t 等 <stdint.h>)提升可移植性
  2. 結構體對齊:按成員大小降序排列減少填充字節
  3. 指針類型嚴格匹配,避免強制轉換導致未定義行為
  4. 善用 const 表達不可變意圖,啟用編譯器優化與檢查
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
修飾符作用
const只讀,編譯期常量傳播優化
volatile防止編譯器優化,硬件寄存器/多線程共享變量必用
restrict(C99) 告知編譯器指針無別名,激進優化
_Atomic(C11) 原子操作類型