C++ 指針再理解

1、針對程序中 首先要看 指針在什麼位置,分爲:用指針存儲數據  和  處理指針數據  兩種基本情況。前者,指針是個變量,是個自由存儲空間。 後者,指針地址就是一個固定的量,可以準確的找到指針已經存儲的數據,指針名就是地址本身。

   有 如下的代碼片段,則 *pa 和 a 完全等價。

int a = 6;
int * pa;
//*pa = a;
pa = &a;

2、指針聲明必須指定指向的的數據的類型。但,int* a,b;表示 聲明瞭一個int*的指針a, 和 一個int的b ;一般來講 地址佔用2個字節還是4個字節,由計算機系統來指定。

3、如何用指針管理程序運行階段的內存分配。 ------------ (一)使用new來分配內存 typename * p_name = new typename; 表示爲一個數據對象(可以是結構,也可以是基本類型)指定分配內存。這種方式存儲的內存塊 是堆(heap)或稱爲自由存儲區;而 類似 int a;形式的是存儲在棧(stack)的內存區域中。 都需要使用delete 來 釋放。

4、(一)使用new創建動態數組    如: int * ps = new int  [10]; 必須加上 [] 和 類型 以及數目。針對數組,必須用特定格式的delete來釋放,如 delete [] ps;  如果使用new 時 帶(不帶)[] 則使用delete時必須帶(不帶)[] ,要對應上。 此時 *ps 表示的是第一個元素的值。也可以寫成ps[0],第二個元素 可以寫成ps[1],以此類推即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章