1. 程式人生 > >C++型別的結構、陣列以及列舉的方式

C++型別的結構、陣列以及列舉的方式

想知道技術類知識,請百度【鏈客區塊鏈技術問答社群】

C++型別–結構.陣列.列舉
感覺社群寫筆記的都是大神,我是個初學者,就寫一些簡單點的吧,說不定以後我也會在這裡成為大神呢~嘿嘿。

一.結構

  1. 結構型別定義
    struct <結構型別名> {<成員表>};
    typedef struct  <結構型別名> {<成員表>}<結構體類型別名>;
    1)名字可以跟結構名不一樣,不過都是一樣的,設定別名知識方便定義變數,保留語法。
        2)在結構型別定義時,對成員變數進行初始化是沒有意義的,因為型別不是程式執行時刻的實體,它們不佔用記憶體空間。
  2. 結構型別變數定義
    struct <結構型別名> <變數名錶>;//C的用法
    或 <結構型別名> <變數名錶>;// C++的用法
    或 struct <結構型別名> {<成員表>}<變數名錶>;
  3. 操作
        1)訪問成員:<結構型別的變數名>.<成員名>
        2)對結構型別的資料可以進行整體賦值,但是要保證兩者屬於相同的結構(成員名和型別都相同)。
  4. 結構型別的預設引數傳遞方式是值傳遞,因此,當結構型別很大時傳輸速度回受限。
  5. 定義完結構型別後,其使用和平時的型別沒有太大的區別,該加加該減減,不過要記住其每個成員也是一個實體。
    列舉
  6. 列舉型別定義
        enum <列舉型別名> {<列舉值表>};
  7. 列舉變數的定義
        <列舉型別> <變量表>;
    或<列舉型別>{<列舉值表>} <變量表>;
  8. 列舉變數的使用
        1)賦值
           Day d1,d2;
            d1 = SUN; //true
            d2 = 3; //error, 但int n = SUN;也是可以的
            d2 = (Day)3;//true 但這樣不安全,必須要保證該整型數屬於列舉型別的值集,否則沒有意義
        2)算術運算
             d2 = d1 + 1;//error,因為它d1 + 1的結果是整型
             d2 = (Day)(d1 + 1);//true
    陣列
  9. 二維陣列
        1)初始化
             int a[2][3] = {{1,2,3},{4,5,6}}; 等同於 int a[2][3] = {1,2,3,4,5,6};//二維陣列可以轉成一維陣列進行處理,但是要注意下標
             int a[][3] = {{1,2},{3,4,5}};//第一個下標可以省略,其他的不能,更高維的陣列也同此。
  10. 一維陣列
        1)定義
             <元素型別> <一維陣列變數名>[<元素個數>];
             也可以藉助 typedef 類定義
             typedef   <元素型別> <一維陣列型別名>[<元素個數>]; <一維陣列型別名> <一維陣列變數名>
         2)操作
             通過下標訪問元素。
             注意下標是否越界。
              初始化
                   int a[10] = {1,2,3};//其他元素初始化為0
                   int a[] = {1,2,3};//元素個數為3

未經允許,拒絕轉載。