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

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>
            免费欧美视频| 亚洲一区二区三区中文字幕| 久久综合九九| 久久精品国产亚洲5555| 久久精品视频在线免费观看| 欧美一区二区黄| 久久久久免费观看| 久久综合九色综合久99| 麻豆成人综合网| 欧美日产一区二区三区在线观看| 欧美日韩1区2区| 国产美女精品| 在线不卡中文字幕播放| 99视频日韩| 久久av红桃一区二区小说| 久久久www免费人成黑人精品| 欧美高清视频| 亚洲欧洲一区二区三区在线观看| 最近中文字幕mv在线一区二区三区四区 | 亚洲国产精品成人综合| 99ri日韩精品视频| 久久精品国产免费观看| 欧美激情亚洲自拍| 亚洲欧美制服中文字幕| 欧美.日韩.国产.一区.二区| 国产精品免费视频观看| 亚洲理伦电影| 另类国产ts人妖高潮视频| 一区二区三区免费在线观看| 欧美一区二区三区免费视频| 欧美韩国日本综合| 欧美亚洲在线视频| 欧美激情第1页| 好吊一区二区三区| 午夜精品影院| 亚洲精品国精品久久99热| 欧美中文字幕在线观看| 国产精品成人av性教育| 亚洲国产一区二区在线| 久久精品日产第一区二区三区| 99这里只有精品| 欧美国产大片| 亚洲黄色片网站| 久久久999精品免费| 99视频在线观看一区三区| 欧美不卡视频一区发布| 在线精品高清中文字幕| 久久亚洲视频| 久久久久久九九九九| 国产日韩亚洲欧美精品| 香蕉乱码成人久久天堂爱免费| 亚洲精品视频免费观看| 午夜一区二区三区在线观看| 亚洲精品自在久久| 欧美激情一区二区三区| 亚洲精品国产精品乱码不99| 欧美二区乱c少妇| 狂野欧美性猛交xxxx巴西| 韩国一区电影| 久久久久久久久蜜桃| 久久大逼视频| 亚洲第一区在线| 欧美福利视频| 麻豆久久精品| 亚洲美女性视频| 亚洲免费不卡| 国产精品一区二区久久久| 久久超碰97人人做人人爱| 欧美影院精品一区| 激情自拍一区| 欧美不卡视频| 欧美精品麻豆| 午夜亚洲视频| 久久久久久穴| 99re亚洲国产精品| 亚洲色诱最新| 国产视频精品va久久久久久| 久久字幕精品一区| 欧美二区在线观看| 亚洲欧美激情视频| 欧美综合国产精品久久丁香| 亚洲黄色成人| 中文在线资源观看网站视频免费不卡| 欧美午夜一区| 久久综合图片| 欧美日韩亚洲综合一区| 美女日韩欧美| 亚洲一区在线免费观看| 亚洲精品综合| 国产欧美日韩中文字幕在线| 欧美1区2区视频| 欧美午夜一区二区| 六月婷婷久久| 国产精品视频999| 亚洲国产婷婷| 韩国精品久久久999| 亚洲免费电影在线| 在线成人av.com| 亚洲免费婷婷| 夜夜嗨av一区二区三区四季av| 欧美在线观看视频| 一区二区三区不卡视频在线观看| 午夜精品美女自拍福到在线| 亚洲精品一区二区三区樱花| 欧美一级一区| 亚洲免费视频一区二区| 免费看精品久久片| 久久精品在这里| 欧美天天在线| 亚洲国产天堂网精品网站| 极品尤物一区二区三区| 亚洲午夜在线视频| 日韩亚洲在线观看| 久久看片网站| 久久激情网站| 国产精品久久久久久久久久免费 | 精品91在线| av成人国产| 9色国产精品| 久色成人在线| 久久精品视频在线看| 欧美午夜不卡影院在线观看完整版免费| 久久综合久久久久88| 国产亚洲一区二区三区在线观看 | 欧美伦理91i| 免费在线播放第一区高清av| 国精产品99永久一区一区| 亚洲香蕉网站| 亚洲永久免费精品| 欧美视频中文字幕在线| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 日韩亚洲不卡在线| 蜜臀av国产精品久久久久| 久久另类ts人妖一区二区| 国产精品女人网站| 亚洲午夜黄色| 亚洲欧美久久久| 欧美亚洲视频在线观看| 欧美日韩p片| 麻豆国产精品一区二区三区| 国产精品嫩草久久久久| 日韩视频在线播放| 亚洲人成人99网站| 亚洲另类黄色| 樱桃成人精品视频在线播放| 午夜电影亚洲| 老司机凹凸av亚洲导航| 亚洲国产精品成人| 欧美精品一二三| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 久久在精品线影院精品国产| 卡一卡二国产精品| 91久久久久| 欧美剧在线免费观看网站| 亚洲九九爱视频| 午夜影视日本亚洲欧洲精品| 国产一级揄自揄精品视频| 久久精品一区| 亚洲精品日日夜夜| 欧美一区二区三区日韩| 伊人久久综合97精品| 免费在线国产精品| 西瓜成人精品人成网站| 国产一区二区三区在线观看免费视频| 久久精品二区三区| 亚洲欧洲日韩综合二区| 欧美一区二区三区四区在线| 韩日在线一区| 欧美日韩中文字幕在线视频| 亚久久调教视频| 亚洲人成艺术| 久久精品视频va| 久久九九热re6这里有精品| 91久久精品日日躁夜夜躁欧美| 亚洲综合三区| 亚洲国产精品美女| 国产精品丝袜xxxxxxx| 久久阴道视频| 亚洲一区在线播放| 亚洲电影成人| 久久久欧美精品sm网站| 亚洲免费av观看| 国产美女精品| 欧美日韩一区二区在线观看视频| 久久黄色网页| 亚洲在线视频网站| 亚洲人成网站在线播| 老司机免费视频久久| 亚洲女ⅴideoshd黑人| 亚洲精品乱码久久久久久按摩观| 国产欧美视频在线观看| 欧美日韩一区自拍| 欧美精品aa| 毛片一区二区三区| 欧美中文在线视频| 午夜欧美电影在线观看| 亚洲特级片在线| 日韩亚洲在线观看| 亚洲三级视频在线观看| 亚洲高清不卡在线|