<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 聯合體(共用體) * 長度等于聯合體中定義的變量當中最長的那個 * 聯合體只能保存一個變量的值 * 聯合體共用同一塊內存,在嵌入式設備中起到節省內存的目的 #### 零基礎學通C語言摘要 #### 共用體 共用體也是用戶自定義的數據類型,不過該類想中的所有成員共用一塊內存,因此一個成員變量賦值,就等于所有成員都被賦予了相同的值 代碼 ``` #include<stdio.h> #include<string.h> union book { char name[10]; char price[10]; };//定義一個共用體,有2個成員,name和price,這2個成員共用一塊內存,因此他們的地址相同 int main() { union book mybook; strcpy(mybook.name,"呼嘯山莊"); strcpy(mybook.price,"11元8角"); printf("name的地址 :%p\n",&mybook.name); printf("price的地址:%p\n",&mybook.price);//輸出結果顯示它們的地址相同 printf("書名:%s\t",mybook.name); printf("價格:%s\n",mybook.price);//由于price1被賦值時,覆蓋了name1成員的值,因此他們的值也是一樣的 return 0; } ``` 輸出結果 ~~~ name的地址 :0x7ffde4ac2a46 price的地址:0x7ffde4ac2a46 書名:11元8角 價格:11元8角 ~~~ **共用體的大小** ``` #include<stdio.h> union book { int num; char name[9]; double price; char sell; }; int main() { union book mybook; int size=sizeof(mybook); printf("共用體mybook的大小為:%d",size); return 0; } ``` 輸出結果 ~~~ 共用體mybook的大小為:16 ~~~ > **共用體mybook的大小應該是最長的那個成員的大小,即name成員的大小,但是name的大小為9,輸出結果卻是16,和是因為共用體的成員也要對齊,而最大成員所占的字節數必須是其他成員的整數倍,假如不夠則補齊,16既是double型成員的整數倍,也是num成員的整數倍,還是char型成員的整數倍,因此name按16補齊** **共用體變量不能被初始化** 共用體中的所有成員共用一塊內存,因此無法對所有成員進行初始化 **共用體類型可以在結構體類型中定義** ``` #include<stdio.h> #include<string.h> struct goods { char name[20]; float price; union //在結構體類型goods中定義一個共用體變量number { int num; float quantity; }number; }; int main() { struct goods drug; strcpy(drug.name,"安定"); drug.price=1.20f; drug.number.quantity=0.1f;//為number的成員quantity賦值 printf("售出商品名:%s 單瓶價格:%.2f 銷售數量:%.2f瓶", drug.name,drug.price,drug.number.quantity); return 0; } ``` 輸出結果 ~~~ 售出商品名:安定 單瓶價格:1.20 銷售數量:0.10瓶 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看