1. 程式人生 > >後臺面試經典問題-Union

後臺面試經典問題-Union

共用體表示幾個變數共用一個記憶體位置,在不同的時間儲存不同的資料型別和不同長度的變數。在union中,所有的共用體成員共用一個空間,並且同一時間只能儲存其中一個成員變數的值。

union foo{/*“共用”型別“FOO”*/

    int i;    /*“整數”型別“i”*/

    char c;   /*“字元”型別“C”*/

    double k;  /*“雙”精度型別“K”*/

};

當一個共用體被宣告時, 編譯程式自動地產生一個變數, 其長度為聯合中型別位元組數最多的變數的型別長度的整數倍。

union foo{/*“共用”型別“FOO”*/

    char

 s[10];    /*“字元”型別的陣列“S”下面有“10”個元素*/

        int i;        /*“整數”型別i*/

};

在這個union中,foo的記憶體空間的長度為12,是int型的3倍,而並不是陣列的長度10。