溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【C++】sizeof()函數解析

發布時間:2020-08-21 22:48:42 來源:網絡 閱讀:922 作者:AlphaFan 欄目:編程語言

【1】 常見數據類型的的sizeof函數得出的值表


charintshortlongfloatdouble指針
32 bit1424484
64 bit14 or 828488


【2】 數組求sizeof 的值

  數組的大小 = 數組中元素的個數 x 該類型的大小


【3】 union 求 sizeof 的值

  由于 union 中存在復寫現象,union 結構的 sizeof 的值即為 union 中最大的元素的大小。例如;

union student{
    int id;
    double score;
}

  這個 union 中的最大的元素是double,所以它的 sizeof 就是8。


【4】 struct 中求 sizeof 的值

   struct 沒有復寫的情況,但是它的 sizeof 情況比較復雜,因為存在補位的情況,例如下面的例子

struct stu{
    char s;
    int i;
}

  它的大小不是簡單的 1 + 4 = 5,而是8。因為 struct 的 size 一定是最大成員的整數倍,如果其中有元素不需要最大元素那么大的位置的話,就空著。所以上例的 struct 的大小為8。下一個例子

struct stu1{
    char a;
    char b;
    int c;
}

struct stu2{
    char a;
    int c;
    char b;
}

   雖然 stu1 和 stu2 的元素是一樣的,只是順序不一樣,但是因為補位的原因,第一個的 size 為8字節,而第二個的 size 為 12 字節。


【5】 類對象的 sizeof 大小

  【5.1】 一個空類,里面任何函數也沒有,它的對象的 size 是多少?

     大小為1。不是0的原因是當我們申明了一個對象的時候,系統就需要為其分配資源,所以一定不是0。

  【5.2】 如果我們在空類中加入了構造函數和析構函數,size 是多少?

    大小還是1,因為函數和對象是分離的。

  【5.3】 如果是虛函數呢?

    虛函數,每個類的對象中都會有一個指向虛函數的指針,所以大小要增加,在32位中,size為4個字節,在64位中為8個字節。 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女