青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Life is Good.

Enhance Tech and English
隨筆 - 65, 文章 - 20, 評論 - 21, 引用 - 0
數(shù)據(jù)加載中……

C++sizeof使用規(guī)則及陷阱分析

sizeof()返回的是變量聲明后所占的內(nèi)存數(shù),不是實際長度,此外sizeof不是函數(shù),僅僅是一個操作符.

cout<<sizeof(int)<<endl; // 32位機上int長度為4

cout<<sizeof(1==2)<<endl; // == 操作符返回bool類型,相當于 cout<<sizeof(bool)<<endl;

這里有個陷阱,看下面的程序:

   int a = 0;

  cout<<sizeof(a=3)<<endl;

   cout<<a<<endl;

  輸出為什么是4,0而不是期望中的4,3???就在于sizeof在編譯階段處理的特性。由于sizeof不能被編譯成機器碼,所以sizeof作用范圍內(nèi),也就是()里面的內(nèi)容也不能被編譯,而是被替換成類型。=操作符返回左操作數(shù)的類型,所以a=3相當于int,而代碼也被替換為:

  int a = 0;

  cout<<4<<endl;

  cout<<a<<endl;

數(shù)組問題

  考慮下面問題:

  char a[] = "abcdef";

  char b[] = {'a', 'b', 'c', 'd', 'e', 'f'};

  int c[20] = {3, 4};

   char d[2][3] = {"aa", "bb"};

   cout<<sizeof(a)<<endl; // 7, 表示字符串

        cout<<sizeof(b)<<endl; // 6, 僅表示字符數(shù)組

   cout<<sizeof(c)<<endl; // 80

  cout<<sizeof(d)<<endl; // 6

         cout << sizeof(*a) << endl;//1

   cout << sizeof(*b) << endl;//1

   cout << sizeof(*c) << endl;//4

    cout << sizeof(*d) << endl;//3

結(jié)論:特別如果字符數(shù)組表示字符串的話,數(shù)組末自動插入的'\0',在sizeof時不能遺漏,數(shù)組a的大小在定義時未指定,編譯時給它分配的空間是按照初始化的值確定的,也就是。c是多維數(shù)組,占用的空間大小是各維數(shù)的乘積,也就是6。可以看出,數(shù)組的大小就是他在編譯時被分配的空間,也就是各維數(shù)的乘積*數(shù)組元素的大小。


再分析下面的多維數(shù)組問題:

  double* (*a)[3][6];

   cout<<sizeof(a)<<endl; // 4

  cout<<sizeof(*a)<<endl; // 72

   cout<<sizeof(**a)<<endl; // 24

   cout<<sizeof(***a)<<endl; // 4

  cout<<sizeof(****a)<<endl; // 8

  (一)不考慮繼承關(guān)系(單繼承、多繼承、虛繼承等)

  (1)不帶virtual函數(shù)時

  空類:

  class A

  { };

  cout << sizeof(A) << endl; // 1

  空類總是返回1

  class B {

  private :

  int value;

  double a;

  public:};

  cout << sizeof(B) << endl; //16

  和struct一樣,也要考慮對齊問題,以及成員的順序因為成員函數(shù)不會分配空間,所以sizeof時只計算數(shù)據(jù)成員的大小

  (2)帶virtual函數(shù)時

  單繼承情況下,只要class中存在virtual函數(shù),編譯器在編譯時就會自動插入一個指向虛函數(shù)表的指針vptr(大小為4字節(jié)). 不同的編譯器vptr插入的位置可能不同,VC編譯器插入vptr的位置一般是數(shù)據(jù)成員開始。

  下例在MinGW Develper Studio2.05(gcc)下編譯,VC 6.0編譯器下結(jié)果為24  24, 我不太理解為什么...

   class A

   {

   public:

   virtual void foo() {}

   private:

   int m1;

   double m2;

   };

  class B

   {

   public:

  virtual void foo() {}

   private:

   double m2;

   int m1;

   };

  cout << sizeof(A) << endl; // 24

   cout << sizeof(B) << endl; // 24

      產(chǎn)生上面的不同時數(shù)據(jù)對其的原因。

(3)帶static成員時

   class A {

  private :

  int value;

  double a;

  static int CST;

  public:

   };

  cout << sizeof(A) << endl; //16

  因為static成員是分配在全局區(qū)為類的所有對象共享(VC編譯器可能為了方便將其放入文字常量表), sizeof時不應(yīng)該計入static成員

posted on 2010-10-26 21:53 Mike Song 閱讀(315) 評論(0)  編輯 收藏 引用 所屬分類: C/C++


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲在线观看| 久久国产黑丝| 欧美α欧美αv大片| 亚洲激情影视| 99视频精品| 激情综合激情| 日韩一区二区久久| 韩国女主播一区| 亚洲精品欧美激情| 黄色成人av| 亚洲欧美另类中文字幕| 一区二区欧美亚洲| 伊人成综合网伊人222| 亚洲人成网站精品片在线观看| 欧美日韩精品欧美日韩精品| 久久国内精品自在自线400部| 欧美大片免费观看在线观看网站推荐| 亚洲欧美国产高清| 男人插女人欧美| 久久九九国产精品| 欧美日韩综合视频网址| 欧美一区二区视频观看视频| 欧美国产日韩免费| 国产欧美日韩一区二区三区在线观看| 亚洲成色777777女色窝| 国产美女精品一区二区三区| 91久久国产综合久久91精品网站| 国产精品一区在线观看你懂的| 亚洲国产欧美不卡在线观看 | 一区二区三区精品视频| 久久成人免费电影| 性久久久久久久久久久久| 欧美激情无毛| 亚洲高清不卡在线观看| 黄网站色欧美视频| 欧美伊人影院| 午夜精品久久久久久久99樱桃| 性色一区二区| 亚洲男女自偷自拍| 欧美日韩成人综合天天影院| 欧美国产高清| 亚洲第一色在线| 久久手机免费观看| 久久久中精品2020中文| 国产欧美一区二区三区久久 | 韩国一区二区三区美女美女秀| 欧美一区二区三区视频在线| 欧美日韩在线看| 亚洲精品视频二区| 一本久道久久综合婷婷鲸鱼| 欧美久久综合| 99视频一区| 亚洲综合国产| 国产嫩草一区二区三区在线观看| 亚洲视频一区在线观看| 亚洲欧美电影院| 国产精品自拍在线| 亚洲欧美日韩一区二区三区在线观看| 午夜精品久久| 国产日韩一区| 久久久久久久波多野高潮日日| 玖玖国产精品视频| 亚洲黄色av一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲精选一区二区| 亚洲午夜久久久久久久久电影院| 国产精品久久国产精麻豆99网站| 亚洲一区二区三区四区五区黄 | 欧美日韩精品在线观看| 亚洲精品欧美日韩专区| 午夜视频一区在线观看| 韩国av一区二区| 欧美国产日本| 亚洲欧美激情四射在线日| 久热精品在线视频| 亚洲免费精品| 国产精品网站在线| 亚洲特色特黄| 亚洲私人影院在线观看| 国产精品欧美精品| 一本色道久久综合精品竹菊| 日韩午夜在线| 国产精品一区二区男女羞羞无遮挡| 午夜精品一区二区三区电影天堂| 麻豆精品在线视频| 亚洲美女中出| 国产日韩欧美三级| 猛干欧美女孩| 亚洲免费一级电影| 欧美黄色一级视频| 欧美亚洲三区| 亚洲精品久久嫩草网站秘色| 国产精品亚洲美女av网站| 久久免费黄色| 亚洲香蕉在线观看| 99视频日韩| 亚洲第一网站| 国产精品久久7| 老**午夜毛片一区二区三区| 亚洲天堂av高清| 欧美激情一区在线观看| 欧美亚洲视频| 一本到12不卡视频在线dvd| 国内精品久久久久影院 日本资源| 欧美激情国产日韩精品一区18| 香蕉精品999视频一区二区 | 国产欧美日韩另类一区| 欧美.com| 久久久999| 亚洲一区视频| 日韩一级在线| 亚洲国产天堂久久综合| 久久精品99无色码中文字幕| a91a精品视频在线观看| 在线日韩一区二区| 国内精品免费午夜毛片| 国产精品每日更新| 欧美日韩精品二区| 你懂的视频一区二区| 久久国产一区二区| 午夜免费在线观看精品视频| 一区二区高清视频在线观看| 亚洲国产日韩在线一区模特| 亚洲综合欧美| 91久久国产综合久久| 激情小说另类小说亚洲欧美| 国产麻豆视频精品| 国产精品高潮呻吟久久av无限 | 免费看黄裸体一级大秀欧美| 欧美一区二区三区免费看 | 国产精品爱啪在线线免费观看 | 亚洲国产精品va在线看黑人动漫 | 国产亚洲精品bt天堂精选| 国产精品国产精品| 国产精品日韩久久久| 国产精品久久国产三级国电话系列 | 亚洲一二三区在线| 夜夜嗨网站十八久久| 99在线视频精品| 午夜欧美视频| 国内成人精品2018免费看| 国产精品激情| 欧美视频在线看| 欧美视频在线免费| 欧美性生交xxxxx久久久| 国产精品国产精品| 国产麻豆成人精品| 国产日韩综合一区二区性色av| 国产精品一区二区欧美| 国产一区二区三区四区三区四| 国产亚洲综合精品| 在线观看国产日韩| 亚洲精品美女在线| 亚洲宅男天堂在线观看无病毒| 亚洲欧美在线免费观看| 性欧美videos另类喷潮| 久久精品欧美日韩精品| 老司机精品福利视频| 欧美国产先锋| 日韩性生活视频| 亚洲欧美综合网| 狂野欧美一区| 欧美调教vk| 国内精品视频久久| 一区二区激情| 先锋影音一区二区三区| 午夜精品亚洲| 免费观看30秒视频久久| 亚洲欧洲综合另类| 亚洲影院色无极综合| 久久手机精品视频| 欧美日韩在线三区| 国内精品写真在线观看| 亚洲人成免费| 欧美在线精品一区| 亚洲成人在线免费| 亚洲国产成人精品久久| 在线视频精品一| 久久久国产午夜精品| 欧美日韩精品是欧美日韩精品| 国产精品每日更新在线播放网址| 国外成人性视频| 一区二区三区高清在线观看| 欧美在线观看一区二区三区| 欧美激情第9页| 亚洲欧美激情精品一区二区| 欧美成人激情视频| 国产在线欧美日韩| 亚洲视频中文| 欧美国产一区二区| 欧美一区二区成人| 欧美日韩在线免费| 亚洲国产精品欧美一二99| 午夜精品网站| 99视频超级精品| 女女同性女同一区二区三区91| 国产精品一区二区久久精品| 日韩网站在线观看| 免费亚洲网站| 欧美一区二区在线播放|