• <del id="a8uas"></del>
    • 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      400-811-9990
      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學習站小程序
      隨時隨地免費學習課程

      上海
      • 北京
      • 鄭州
      • 武漢
      • 成都
      • 西安
      • 沈陽
      • 廣州
      • 南京
      • 深圳
      • 大連
      • 青島
      • 杭州
      • 重慶
      當前位置:合肥千鋒IT培訓  >  技術(shù)干貨  >  C的數(shù)據(jù)結(jié)構(gòu)和C++的有區(qū)別嗎?

      C的數(shù)據(jù)結(jié)構(gòu)和C++的有區(qū)別嗎?

      來源:千鋒教育
      發(fā)布人:xqq
      時間: 2023-10-17 13:20:49

      一、C的數(shù)據(jù)結(jié)構(gòu)和C++的區(qū)別

      C語言和C++描述數(shù)據(jù)結(jié)構(gòu)最大的區(qū)別在于設(shè)置思想,C語言是一種結(jié)構(gòu)化程序設(shè)計語言,而C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言,它兩者的區(qū)別主要在于數(shù)據(jù)和操作的關(guān)系。
      C語言是定義數(shù)據(jù)類型,數(shù)據(jù)類型定義變量,然后函數(shù)操作變量,換句話說C語言是“操作的數(shù)據(jù)”。
      C++是定義類,類本身就具備操作,換句話說,C++是“數(shù)據(jù)的操作”。

      而對于結(jié)構(gòu)體,C++中結(jié)構(gòu)體和類基本完全類似。C++中結(jié)構(gòu)體能繼承、能實現(xiàn)多態(tài)!結(jié)構(gòu)體中也可以包含構(gòu)造函數(shù)和析構(gòu)函數(shù)和其他內(nèi)部成員函數(shù),因此結(jié)構(gòu)體和類基本雷同!少數(shù)的區(qū)別是,類中的成員變量默認為私有,而結(jié)構(gòu)體中則為公有。

      雖然二者基本毫無區(qū)別,struct更適合作為數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)體,class更適合作為對象的實現(xiàn)體。

      延伸閱讀:

      二、C/C++結(jié)構(gòu)體占用內(nèi)存大小問題

      計算struct占用的內(nèi)存大小需要考慮兩點:一是各個分量的偏移地址的計算,二是最終整體大小要進行地址對齊(為了確保結(jié)構(gòu)的大小為結(jié)構(gòu)的字節(jié)邊界數(shù)(即該結(jié)構(gòu)中占用最大空間的類型所占用的字節(jié)數(shù))的倍數(shù),所以在為最后一個成員變量申請空間后,還會根據(jù)需要自動填充空缺的字節(jié))。

      struct{?

      ??? char a[15]; //占15個字節(jié),從0開始偏移,所以下面的int是從15開始偏移?

      ??? int x;//偏移量 0x15+1=16?

      }s1;?

      cout<

      struct{?

      ??? char a[15]; //?

      ??? int x; //偏移量 16字節(jié)?

      ??? char b; //偏移量 21字節(jié)?

      }s2; //結(jié)果為21字節(jié),按最大基本類型對齊,補充到24字節(jié)?

      cout<

      struct{?

      ??? char a[15];?

      ??? int x;? //偏移量 16字節(jié)?

      ?? ?double b; //double偏移量必須為8的倍數(shù),故偏移量24字節(jié)?

      }s3;//?

      cout<

      struct{?

      ??? char a[15];?

      ??? int x;? //偏移量 16字節(jié)?

      ??? double b; //偏移量 24字節(jié)?

      ??? char c;//偏移量 32字節(jié)?

      }s3;//共33字節(jié),按最大基本類型對齊,補充到40字節(jié)(整除8)?

      cout<

      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

      猜你喜歡LIKE

      web前端會用到哪些軟件工具?

      2023-10-17

      java/Python這么火,c++這么難,為什么我們還要選擇用C++?

      2023-10-17

      app開發(fā)的制作為什么報價和開發(fā)周期都不一樣?

      2023-10-17

      最新文章NEW

      對數(shù)量龐大的照片進行分類管理,較好的方便檢索的方法是什么?

      2023-10-17

      PHP中的interface有什么用處?

      2023-10-17

      PHP有哪些運行環(huán)境?

      2023-10-17

      相關(guān)推薦HOT

      更多>>

      快速通道 更多>>

      最新開班信息 更多>>

      網(wǎng)友熱搜 更多>>