C 學習筆記 堆中的指標陣列

2021-05-24 21:32:27 字數 964 閱讀 9332

1.棧的記憶體都有有限的,但是堆得記憶體很大,為避免棧的記憶體開銷,我們都把整個物件都存放在

堆中,那麼在堆中區宣告乙個物件方法是:

area *one=new area;

new:  操作符,它用來生成某種型別的乙個物件,通常這個物件在堆中生成。

* one:宣告了乙個指向堆中的新物件的指標one。

area:(new後面的)代表在堆中建立的屬於類area的物件。

因為堆中所有成員都是匿名的,因此它沒有名字,不能按名字訪問,只能通過指標(one)訪問。

2.刪除堆中的陣列:

只需要刪除delete即可,然後後面加上陣列名就可以,

比如:我們要刪除陣列one,那麼就是:deleteone;

注意:  1. 如果忘記輸入;那麼刪除的只是one[0];改錯誤帶來的後果就是記憶體洩露。

2. 即使是指標也不能越界運算元組。

3.容易混淆的概念:

a.   area one[10000]  :宣告乙個由10000個area物件組成的陣列,陣列名字叫one。

b.   area *one[10000] :宣告乙個由10000個指向area的指標組成的陣列,陣列名字為one。

c.   area *one=new area[10000]:該指標指向由1000個area物件組成的乙個陣列。

c方式的one是乙個指向陣列的指標,也就是說one儲存的是陣列第乙個元素的位址。

例項1.b方式:

#include

using namespace std;

class area

例項2 c方式:

#include

using namespace std;

class area

{public:

// area(int i, int w){length=i, width=w; cout<<"呼叫建構函式設定長和寬的值"

c 學習筆記 六 陣列指標

這是最有可能的,讀者有可能不理解本章內容直到學相關c 指標的章節學習。因此,假如有c 指標位的理解,那麼陣列名是乙個常量指標陣列的第乙個元素。因此,在宣告 double balance 50 double p double balance 10 p balance 它是合法的使用陣列名作為常量指標,...

C語言學習筆記 指標 指標陣列與陣列指標

指標陣列 是乙個陣列,陣列元素為指標 陣列指標 是乙個指標,指向陣列的指標 例如 int p1 5 int p2 5 對於語句int p1 5 因為 的優先順序要比 要高,所以 p1 先與 結合,構成乙個陣列的定義,陣列名為 p1,而 int 修飾的是陣列的內容,即陣列的每個元素。也就是說,該陣列包...

C 筆記 C 陣列指標和指標陣列

char p 10 為陣列指標,實際上相當於二維陣列,也就是指向乙個一維陣列的指標 p可以單獨看做指向陣列的指標 比如這樣 int b 2 int cc 2 2 1,2 3,4b cc b cout 這樣的賦值是可以的,b指向的陣列的大小一定要和cc的第一維陣列大小一致,這裡輸出,4,因為b 這個時...