小河學習日記 C與C 不同之處出

2021-09-26 06:08:12 字數 977 閱讀 1032

c與c++的不同之處(只講區別,c++有而c沒有的,請聽下回分解)

一.記憶體管理

1.c使用的時malloc/free,malloc再分配記憶體時是一頁一頁的分配的,當使用malloc時作業系統會直接批發32頁記憶體,所以使用malloc時,如果沒有後續在堆記憶體上的操作了,是可以越界的。

例如如:

這樣就是可以訪問成功了。另外使用malloc會導致很多記憶體碎片,這是無法避免的

2.new會自動計算型別所需的位元組數,並從堆中分配相應的記憶體,返回記憶體的首位址,而malloc不會。

3.new/delete會自動呼叫類的建構函式和析構函式

4.new申請的記憶體會在記憶體前乙個位元組記錄這塊記憶體所存放資料的數量

二.static

c++完美的繼承了c在static上的所有用法。並對其做出了擴充套件,

c++中的static可以運用到成員變數和成員函式上面,將其程式設計靜態成員變數和靜態成員函式

靜態成員需要在類內申明,但必須在類外定義和初始化,和成員函式一樣需要加 "類名::"限定符表示它屬於那個類,但不需要加static

#include

#include

using namespace std;

class user

void show()

;char user::name;//類外定義

int main()

三.const

c++對const的檢查更加嚴格,而且被const修飾過的變數,編譯器只會對其取一次的值,而c不會。所以const在c++中更加安全

四.void*

void*在c中是乙個萬能指標,可以對任意變數賦值,而在c++中不行,需要強制轉換,因為c++對型別的檢查更加嚴格

C 與C語言的不同之處

本文介紹了c 與c語言的不同之處。常見區別 庫函式 c stdio.h c iostream 輸入 c scanf c cin 輸出 c printf c cout 動態開闢 c malloc c new 釋放 c free c delete 以上是比較常見之處。下面是我在學習c 中認識到的內容 內...

C語言與C 的不同之處總結

一 c語言認為char屬於int,char型的數值計算實質是ascii碼 二 c語言沒有布林型別,除0位假外,其餘均為真 三 c語言沒有string型別 在c語言中並沒有char型別的常量 但是在c 中卻有,字元常量都是char型別 其實是用int表示char,字元型與整型相比只是更加節省記憶體。有...

C 學習筆記1 明顯與C的不同之處

2021.03.03 看書學習記錄一些區別於c的部分 當遇到函式的功能相似,但函式和引數的型別可能不同的情況下,為了避免重複的命名。在c 中允許用同乙個函式名定義多個函式,這些函式的引數個數和引數型別不同,這就叫做函式過載。例如 分別求三個整型 雙精度和長整型數的最大值 可以如下定義 執行結果如上圖...