亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++ sizeof 實例解析

 更新時間:2013年07月20日 15:57:25   投稿:jingxian  
下面5個列子針對C++,沒有涉及到sizeof字節(jié)對齊及基本數(shù)據(jù)類型即只針對C++特有,并且針對的是32位機

在C++中使用sizeof要比C復(fù)雜很多,因為C++類中有static靜態(tài)變量,virtual虛函數(shù),還有繼承、派生等。sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它并不是函數(shù)。sizeof操作符以字節(jié)形式給出了其操作數(shù)的存儲大小。
sizeof使用形式有三種:sizeof(var_name)或sizeof var_name或sizeof(var_type)。

【例1】:(列子中忽略構(gòu)造及析構(gòu)函數(shù))

復(fù)制代碼 代碼如下:

class A 

    public:
        void hello(){} 
}; 
sizeof(A)= 1;

肯定不是零。舉個反例,如果是零的話,聲明一個class A a[10]對象數(shù)組,而每一個對象占用的空間是零,這時就沒辦法區(qū)分A[0],A[1]…了。

因為A是空類,占字節(jié)為1是為了區(qū)分兩個不同的對象,也可以看做是占位符,該字節(jié)的地址也就是對象的地址。但是這里的1也不是絕對的,只是編譯器這樣設(shè)定而已。
【例2】:

復(fù)制代碼 代碼如下:

class B 

    public:
         void hello(){}
         static int i;
}; 
    sizeof(B) = 1;

【例3】:
復(fù)制代碼 代碼如下:

classC

    public:
        virtual void hello(){}
};
sizeof(C)= 4;

B類中有虛函數(shù),相應(yīng)的會有虛表指針存在,占4個字節(jié),恰好是一個指針的空間。同時,如果有多個virtual函數(shù)或有多個類繼承了C類,虛函數(shù)也只占4個字節(jié),如【例4】:
【例4】:
復(fù)制代碼 代碼如下:

class D : public C
{
    public:
        virtual void world(){}
        virtual  void nihao(){}
};
sizeof(D)= 4;

【例5】:
復(fù)制代碼 代碼如下:

class E

    public:
          virtual void hello(){}
          virtual void world(){}
          staticint i;
          static int j;
          int k;
};
     sizeof(E) = 8;

希望對你有所幫助。

相關(guān)文章

  • 圖的鄰接表存儲表示示例講解

    圖的鄰接表存儲表示示例講解

    這篇文章主要介紹了圖的鄰接表存儲表示,大家參考使用
    2013-11-11
  • 淺析操作系統(tǒng)中的虛擬地址與物理地址

    淺析操作系統(tǒng)中的虛擬地址與物理地址

    本文主要介紹了操作系統(tǒng)中的虛擬地址與物理地址。在早期的計算機中,要運行一個程序,會把這些程序全都裝入內(nèi)存,程序都是直接運行在內(nèi)存上的,也就是說程序中訪問的內(nèi)存地址都是實際的物理內(nèi)存地址。那當程序同時運行多個程序時,操作系統(tǒng)是如何為這些程序分配內(nèi)存的呢
    2021-06-06
  • C語言實現(xiàn)簡易三子棋

    C語言實現(xiàn)簡易三子棋

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易三子棋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Linux/C++多線程實例學習十字路口車輛調(diào)度

    Linux/C++多線程實例學習十字路口車輛調(diào)度

    這篇文章主要為大家介紹了Linux/C++多線程實例學習十字路口車輛調(diào)度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 在編程語言中怎樣定義隊列及其使用(C++)

    在編程語言中怎樣定義隊列及其使用(C++)

    這篇文章主要介紹了在編程語言中怎樣定義隊列,本文主要根據(jù)c++來介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • C++中的類與對象深度解析

    C++中的類與對象深度解析

    這篇文章主要為大家詳細介紹了C++中的類與對象,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 詳解QT使用QtGui顯示QImage的幾種方法

    詳解QT使用QtGui顯示QImage的幾種方法

    本文主要介紹了QT使用QtGui顯示QImage的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Qt自定義表頭實現(xiàn)過濾功能的方法

    Qt自定義表頭實現(xiàn)過濾功能的方法

    這篇文章主要個給大家介紹了關(guān)于Qt自定義表頭實現(xiàn)過濾功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Qt具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • c語言中如何修改文件中間的幾個字節(jié)

    c語言中如何修改文件中間的幾個字節(jié)

    工作中碰到一個問題,如何只修改文件中間的幾個字節(jié),而其他的內(nèi)容不變。這個問題看似簡單,但是很多人估計都不知道怎么做。我開始seek到文件的特定的位置,然后寫文件,但是使用的文件打開模式不對,文件不是被清空,就是被截斷,達不到效果
    2020-10-10
  • C語言實現(xiàn)簡單的控制臺三子棋游戲

    C語言實現(xiàn)簡單的控制臺三子棋游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的控制臺三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論