C++資料型別

checha發表於2024-07-23

基本資料型別 (Primitive Data Types)

  1. 整數型別 (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;
    
  2. 字元型別 (Character Type)

    • char:表示單個字元,通常為 1 位元組(8 位),可以是有符號(signed char)或無符號(unsigned char)。
      char f = 'A';
      unsigned char g = 255;
      
  3. 浮點型別 (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)

  • signedunsigned:指定整數型別的符號。

    signed int k = -10;
    unsigned int l = 10U;
    
  • shortlong:指定整數型別的大小。

    short m = 100;
    long n = 100000L;
    

布林型別 (Boolean Type)

  • bool:表示布林值,僅有兩個取值:truefalse
    bool o = true;
    

列舉型別 (Enumeration Types)

  • enum:定義一組具名整型常量。
    enum Color { RED, GREEN, BLUE };
    Color p = RED;
    

型別別名 (Type Aliases)

  • typedefusing:用於建立型別的別名。
    typedef unsigned long ulong;
    using uint = unsigned int;
    ulong q = 100000UL;
    uint r = 100U;
    

複合資料型別 (Compound Data Types)

  1. 陣列 (Arrays)

    • 用於儲存相同資料型別的多個值。
      int numbers[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
      
  2. 指標 (Pointers)

    • 用於儲存變數的地址。
      int s = 10;
      int* ptr = &s;
      
  3. 引用 (References)

    • 用於建立一個變數的別名。
      int t = 10;
      int& ref = t;
      

自定義資料型別 (User-defined Data Types)

  1. 結構體 (Structures)

    • struct:用於定義一個由不同資料型別組成的資料集合。
      struct Person {
        std::string name;
        int age;
      };
      Person u = {"Alice", 30};
      
  2. 類 (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");
      
  3. 聯合體 (Unions)

    • union:允許不同資料型別共用同一記憶體區域。
      union Data {
        int intVal;
        float floatVal;
      };
      Data w;
      w.intVal = 10;
      
  4. 型別列舉 (Enumerations)

    • enumenum class:用於定義一組具名整型常量。enum class 提供更強的型別安全。
      enum class Status { SUCCESS, FAILURE };
      Status x = Status::SUCCESS;
      

其他資料型別

  1. 空型別 (Void Type)

    • void:用於表示無型別。常用於函式的返回型別,表示該函式不返回任何值。
      void myFunction() {
        // 函式體
      }
      
  2. 標準庫型別 (Standard Library Types)

    • C++ 標準庫提供了許多額外的資料型別,如 std::stringstd::vectorstd::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++ 強大且靈活的型別系統,使得開發者可以高效地處理各種資料需求。

相關文章