第10課 C 中的新成員

2022-02-21 12:48:37 字數 2233 閱讀 2231

1.1 c++ 中的動態記憶體分配

(1)c++ 中通過new關鍵字進行動態記憶體申請

(2)c++ 中的動態記憶體申請是基於型別進行的

(3)delete關鍵字用於記憶體釋放

1 type *pointer = new

type;2//

......

3delete pointer;

變數申請

1 type *pointer = new

type[n];2//

......

3delete pointer;

陣列申請

1 #include 2

3int

main()423

24delete p; //

注意釋放的時候不要忘記 否則只能釋放陣列的第乙個元素

2526

return0;

27 }

c++中的動態記憶體分配

1.2 new 關鍵字與malloc 函式的區別

new

malloc

性質

c++的關鍵字,屬於c++的一部分

c庫提供的函式,有些編譯器可能未包含

申請單位

以具體型別為單位

位元組為單位

記憶體初始化

申請單個型別變數時可進行初始化

不具備記憶體初始化的特性

1.3 new 關鍵字的初始化

4初始化動態記憶體

(1)在c語言中只有乙個全域性作用域

① c語言中所有的全域性識別符號共享同乙個作用域

② 識別符號之間可能發生衝突

(2)c++ 中提出了命名空間的概念

① 命名空間將全域性作用域分成不同的部分

② 不同命名空間中的識別符號可以同名而不會發生衝突

③ 命名空間可以相互巢狀

④ 全域性作用於也叫預設命名空間

(3)c++ 命名空間的定義

(4)c++命名空間的使用

① 使用整個命名空間:using namespace name;

② 使用命名空間中的變數:using name::

variable;

③ 使用預設命名空間中的變數:::

variable

1 #include 2

3namespace

first47

8namespace

second9;

20}21}

2223

intmain()24;

3233 printf("

p.x = %d\n

", p.x);//

234 printf("

p.y = %d\n

", p.y);//335

36return

0;

37 }

命名空間的使用

(1)c++ 中內建了動態記憶體分配的專用關鍵字

(2)c++ 中的動態記憶體分配可以同時進行初始化

(3)c++ 中的動態記憶體分配是基於型別進行的

(4)c++ 中命名空間概念用於解決名稱衝突的問題

第10課 C 中的新成員

本文內容取自於對狄泰學院 唐佐林老師 c 深度解析 課程的學習總結 例項分析 c 中的動態記憶體分配 include intmain delete p return0 執行結果 new關鍵字與malloc函式的區別 new關鍵字是c 的一部分 malloc是由c庫提供的函式 new 以具體型別為單位...

10 C 中的新成員

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 動態記憶體分配 1 c 中的動態記憶體分配 c 中通過new關鍵字進行動態記憶體申請 c 中的動態記憶體申請是基於型別進行的 delete關鍵字用於記憶體釋放 釋放陣列記憶...

C 10 C 中的新成員

變數申請 type pointer new type 堆空間中單個記憶體單元申請 delete pointer 釋放 pointer 所指向的單個記憶體單元陣列申請 type pointer new type n 堆空間中連續 n 個記憶體單元申請 delete pointer 釋放 pointer...