基本資料型別 (Primitive Data Types)
-
整數型別 (Integer Types)
int
:用於表示整數,大小通常為 4 位元組(32 位),範圍約為 -2,147,483,648 到 2,147,483,647。int a = 10;
short
:表示較小的整數,通常為 2 位元組(16 位),範圍約為 -32,768 到 32,767。short b = 100;
long
:表示較大的整數,通常為 4 位元組(32 位)或 8 位元組(64 位),取決於平臺。long c = 100000L;
long long
:表示更大的整數,至少為 8 位元組(64 位),範圍非常大。long long d = 100000000000LL;
這些型別可以是有符號(
signed
)或無符號(unsigned
)。unsigned int e = 100U;
-
字元型別 (Character Type)
char
:表示單個字元,通常為 1 位元組(8 位),可以是有符號(signed char
)或無符號(unsigned char
)。char f = 'A'; unsigned char g = 255;
-
浮點型別 (Floating-point Types)
float
:表示單精度浮點數,通常為 4 位元組(32 位)。float h = 3.14f;
double
:表示雙精度浮點數,通常為 8 位元組(64 位)。double i = 3.141592653589793;
long double
:表示擴充套件精度浮點數,通常為 8、12、16 位元組或更多,具體取決於實現。long double j = 3.141592653589793238L;
修飾符 (Modifiers)
-
signed
和unsigned
:指定整數型別的符號。signed int k = -10; unsigned int l = 10U;
-
short
和long
:指定整數型別的大小。short m = 100; long n = 100000L;
布林型別 (Boolean Type)
bool
:表示布林值,僅有兩個取值:true
和false
。bool o = true;
列舉型別 (Enumeration Types)
enum
:定義一組具名整型常量。enum Color { RED, GREEN, BLUE }; Color p = RED;
型別別名 (Type Aliases)
typedef
和using
:用於建立型別的別名。typedef unsigned long ulong; using uint = unsigned int; ulong q = 100000UL; uint r = 100U;
複合資料型別 (Compound Data Types)
-
陣列 (Arrays)
- 用於儲存相同資料型別的多個值。
int numbers[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- 用於儲存相同資料型別的多個值。
-
指標 (Pointers)
- 用於儲存變數的地址。
int s = 10; int* ptr = &s;
- 用於儲存變數的地址。
-
引用 (References)
- 用於建立一個變數的別名。
int t = 10; int& ref = t;
- 用於建立一個變數的別名。
自定義資料型別 (User-defined Data Types)
-
結構體 (Structures)
struct
:用於定義一個由不同資料型別組成的資料集合。struct Person { std::string name; int age; }; Person u = {"Alice", 30};
-
類 (Classes)
class
:與結構體類似,但提供更多物件導向的特性,如封裝、繼承和多型。class Car { private: std::string model; public: void setModel(const std::string& m) { model = m; } std::string getModel() const { return model; } }; Car v; v.setModel("Tesla");
-
聯合體 (Unions)
union
:允許不同資料型別共用同一記憶體區域。union Data { int intVal; float floatVal; }; Data w; w.intVal = 10;
-
型別列舉 (Enumerations)
enum
和enum class
:用於定義一組具名整型常量。enum class
提供更強的型別安全。enum class Status { SUCCESS, FAILURE }; Status x = Status::SUCCESS;
其他資料型別
-
空型別 (Void Type)
void
:用於表示無型別。常用於函式的返回型別,表示該函式不返回任何值。void myFunction() { // 函式體 }
-
標準庫型別 (Standard Library Types)
- C++ 標準庫提供了許多額外的資料型別,如
std::string
、std::vector
、std::map
等,用於更復雜的資料操作。std::string str = "Hello, World!"; std::vector<int> vec = {1, 2, 3, 4, 5}; std::map<std::string, int> ages = {{"Alice", 30}, {"Bob", 25}};
- C++ 標準庫提供了許多額外的資料型別,如
這些資料型別和修飾符構成了 C++ 強大且靈活的型別系統,使得開發者可以高效地處理各種資料需求。