枚舉類型、等位型別

來源:互聯網
上載者:User

標籤:style   color   io   使用   ar   資料   div   sp   on   

1聯合union

  聯合 (union) 是一個能在同一個儲存空間裡(但不同時)儲存不同類型資料的資料類型。

  編譯器為聯合分配足夠的空間儲存所描述的可能性的最大需要。

  下面是一個帶有標記的聯合模板例子:

    union hold{    //帶有標記的聯合的模板 

      int digit; 

      double bigf1; 

      char letter; 

    };

  下面是定義3個 hold 類型聯合變數的例子 

    union hold fit;      //hold類型的聯合變數 

    union hold save[10];  //10個聯合變數的數組 

    union hold *pu;      //指向hold類型變數的指標

  初始化聯合:

    union hold valA; 

    valA.letter = ‘R‘; 

    union hold valB = valA;  //把一個聯合初始化為另一個聯合 

    union hold valc = {88};   //初始化聯合的 digit 成員

    union hold valD = {.bigf1 = 118.2}; //指定初始化項目

  聯合的使用方法:即使有足夠的空間,也不能同時儲存2個值

    fit.digit = 23; //把 23 儲存在 fit 中,使用 4 個位元組 

    fit.bigf1 = 2.0; //清除 23,儲存2.0,使用 8 個位元組

    fit.letter = ‘h‘; //清除 2.0,儲存 ‘h‘,使用1個位元組

2枚舉enum 

枚舉值屬於構造類型

enum 枚舉名 {枚舉值表};例:enum WeekDay
{
    Monday = 1,
    TuesDay,
    WednesDay,
    TursDay,
    FriDay,
    SaturDay,
    SunDay
};

枚舉是指將變數的值一一列出來,變數的值只限於列舉出來的值的範圍內。它用於聲明一組命名的常數,當一個變數有幾種可能的取值時,可以將它定義為枚舉類型。

 在枚舉類型中聲明的第一個枚舉成員它的默值為0。以後的枚舉成員值是將前一個枚舉成員(按照文本順序)的值加 1 得到的。這樣增加後的值必須在該基礎類型可表示的值的範圍內;否則,會出現編譯時間錯誤。 

1.在C編譯系統中,枚舉值是常量,不是變數,只有在定義時才能對其賦值,不能在程式中再使用指派陳述式對他們賦值。

2.枚舉值是常量,它們是有值的,按定義的順序使它們的值為 0, 1, 2… 。

 上面定義的枚舉類型 WeekDay 中,MonDay 的值為 0 ,TuesDay 的值為1 … ,這些都是系統自動賦給的。如果定義時賦值 MonDay=2 ,那麼輸出day的時候 day=4;如果定義時賦值 MonDay=2,同時賦值 FriDay=3 時,輸出 day 的值還是 day=4 。

3.枚舉值可以比較,枚舉值的比較是按其定義時的值進行比較的。 if (SunDay]]]]>Monday)             //枚舉值可以進行比較
    {
        printf("day = %d\n",day);
        printf("day2 = %d\n",day2);
    }

4.給枚舉變數賦值時不能直接賦整數,因為它們屬於不同的資料類型,應先強制類型轉換才能賦值。

例:enum WeekDay day2;    
    day2=(enum WeekDay)4;

 

枚舉類型、等位型別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.