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

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>
            久久精品盗摄| 久久久久综合网| 夜久久久久久| 久久午夜电影网| 国产精品进线69影院| 亚洲国产你懂的| 久久精品国产69国产精品亚洲 | 午夜一区在线| 亚洲精品国产精品乱码不99按摩| 亚洲自拍啪啪| 国产精品久久午夜| 亚洲一区二区三区在线| 亚洲精品日韩激情在线电影| 久久综合电影| 亚洲国产精品一区二区第四页av | 亚洲第一页在线| 久久久噜噜噜久久中文字幕色伊伊| 国产日韩欧美一二三区| 午夜天堂精品久久久久| 亚洲一区二区三区激情| 国产精品日日摸夜夜添夜夜av| 在线视频一区观看| 中日韩午夜理伦电影免费| 欧美日本在线视频| 一区二区三区.www| 噜噜噜在线观看免费视频日韩| 日韩亚洲视频| 亚洲天堂av在线免费| 欧美视频观看一区| 亚洲欧美日韩国产成人精品影院| 亚洲午夜电影| 国产日韩欧美在线看| 久久精品国产精品亚洲综合| 久久福利毛片| 亚洲国产婷婷香蕉久久久久久99 | 久久国产99| 欧美日韩综合一区| 国产性做久久久久久| 亚洲一二三四久久| 欧美精品色综合| 久久精品中文字幕一区| 91久久黄色| 国产精品国产三级国产aⅴ入口| 亚洲一区二区三区四区五区黄| 亚洲一区日本| 日韩一二在线观看| 亚洲国产精品久久久久秋霞蜜臀| 欧美在线观看你懂的| 欧美亚洲一区在线| 亚洲激情成人| 亚洲欧美在线网| 久久噜噜亚洲综合| 免费不卡欧美自拍视频| 久久午夜精品一区二区| 午夜精品在线观看| 亚洲女人小视频在线观看| 永久免费毛片在线播放不卡| 中文av字幕一区| 亚洲欧美日韩高清| 国产老肥熟一区二区三区| 欧美凹凸一区二区三区视频| 欧美激情国产日韩精品一区18| 一区二区电影免费观看| 亚洲摸下面视频| 日韩视频中文字幕| 日韩午夜免费视频| 麻豆成人在线播放| 亚洲一区二区三区精品动漫| 一区二区精品在线| 国产美女精品人人做人人爽| 久久精品成人| 久久午夜精品| 国内偷自视频区视频综合| 久久久99国产精品免费| 中文一区二区在线观看| 樱桃国产成人精品视频| 一区二区三区蜜桃网| 亚洲国产一区二区精品专区| 亚洲欧美bt| 亚洲免费婷婷| 欧美日韩国产探花| 亚洲黄页视频免费观看| 国产亚洲激情视频在线| 一区二区三区四区五区精品| 91久久精品国产91久久性色| 欧美亚洲网站| 国模吧视频一区| 亚洲一区二区欧美| 亚洲视频一起| 欧美片在线观看| 亚洲国产天堂久久国产91| 亚洲肉体裸体xxxx137| 亚洲成人在线| 国产精品丝袜xxxxxxx| 欧美黑人在线观看| 国产日韩欧美综合| 一区二区三区成人| 亚洲国产美女| 亚洲一区二区3| 亚洲视频在线免费观看| 亚洲精品免费网站| 久久阴道视频| 久久女同互慰一区二区三区| 在线观看一区| 久久成人免费电影| 久久久福利视频| 国产一区二区三区在线观看视频| 亚洲视频在线一区| 性欧美8khd高清极品| 国产乱肥老妇国产一区二| 亚洲一区精品视频| 欧美在线观看视频一区二区| 国产色综合天天综合网| 午夜精品免费| 麻豆精品传媒视频| 亚洲激情av| 欧美色区777第一页| 亚洲精品视频免费观看| 正在播放日韩| 欧美中文字幕视频| 久久久久久久久久久久久女国产乱| 午夜免费日韩视频| 久久久国产精品一区二区三区| 久久精品麻豆| 一本久道久久久| 欧美日韩免费在线| 欧美色大人视频| 欧美成人激情在线| 国产乱码精品一区二区三区五月婷 | 亚洲在线免费| 久久久精品免费视频| 欧美国产精品| 在线亚洲电影| 免费中文日韩| 欧美诱惑福利视频| 噜噜爱69成人精品| 亚洲裸体视频| 久久精品人人做人人爽| 美女精品网站| 国产日韩亚洲欧美综合| 免费人成精品欧美精品| 欧美aⅴ一区二区三区视频| 亚洲国产va精品久久久不卡综合| 在线看一区二区| 羞羞漫画18久久大片| 久久视频一区| 最新日韩在线视频| 国产欧美日韩一区二区三区在线观看 | 日韩午夜视频在线观看| 国产乱码精品一区二区三| 久久久www成人免费精品| 亚洲国产成人av| 午夜伦理片一区| 在线一区观看| 亚洲高清免费视频| 国产精品影片在线观看| 欧美日韩你懂的| 久久躁日日躁aaaaxxxx| 在线亚洲电影| 这里只有精品视频在线| 国产自产2019最新不卡| 日韩五码在线| 欧美亚洲在线视频| 欧美激情一区二区三区成人| 精久久久久久久久久久| 亚洲第一精品福利| 精品福利电影| 最新国产乱人伦偷精品免费网站| 国产精品成人aaaaa网站| 久久久精品国产免费观看同学| 一个色综合av| 麻豆9191精品国产| 久久综合九色| 国产亚洲精品高潮| 亚洲精品欧美| 亚洲欧美日韩天堂| 欧美一区观看| 洋洋av久久久久久久一区| 99精品欧美一区| 欧美精品videossex性护士| 一本色道久久综合狠狠躁的推荐| 欧美一区二区观看视频| 国产精品成人在线| 一本到12不卡视频在线dvd| 欧美美女操人视频| 99亚洲一区二区| 久久综合色婷婷| 一区二区三区国产盗摄| 久久都是精品| 久久久亚洲国产美女国产盗摄| 男同欧美伦乱| 亚洲日韩第九十九页| 亚久久调教视频| 国产精品一区久久| 欧美偷拍另类| 国产女同一区二区| 国产精品入口夜色视频大尺度| 欧美日本国产一区| 久久久久久尹人网香蕉| 久久亚裔精品欧美|