指標和自由儲存空間 陣列 指標算術

2021-08-18 13:11:57 字數 1105 閱讀 1946

第4章,第7、8節

指標和自由儲存空間:

·是變數,儲存的是值的位址

·int *p1,p2 中 p1表示指標,而p2表示整型變數

·指標本身的長度通常相同

·建立時,會分配用來儲存指標位址的記憶體,但不會分配用來儲存指標所指向的資料的記憶體

·指標不是整型,不能簡單地將整數賦給指標

·new是從heap或free store分配記憶體的,而變數是存於stack記憶體區域中的

·值為0的指標稱為空指標

·delete ps 將釋放ps所指向的記憶體,但不會刪除ps指標本身,也就是說,ps還可以重新分配記憶體

·記憶體洩露(memory leak)指被分配的記憶體再也無法使用,常因沒有及時釋放記憶體引起

·不可以用delete釋放變數的記憶體

·對空指標使用delete是安全的

·new要用delete釋放

指標、陣列和指標算術:

·陣列vs指標,指標的值可以改,陣列名是常量;sizeof測的是陣列的長度、指標的長度,測出來的不一樣

·short tell[10]中,&tell[0]是第乙個元素的位址,而&tell是這個陣列的位址

·char陣列名、char指標以及用引號括起的字串常量都被解釋為字串的第乙個字元的位址,所以用cout時穿傳遞的實際上是第  乙個字元的位址

·有些編譯器將字串字面值解釋為唯讀常量

·有些編譯器只使用字串字面值的乙個副本來表示該字面值(不怎麼懂)

·不可用字串常量或未被初始化的指標來接收輸入

·一般而言,給cout提供乙個指標,cout將列印位址,但是如果指標的型別為char*,則cout將顯示指標指向的字串,若想顯示位址,則需要將指標強制轉換成另一種指標型別

·指定結構成員時,若結構識別符號是結構名,則使用句點運算子,若是指標,則使用箭頭運算子(->)

自動儲存、靜態儲存和動態儲存:

·函式內部定義的常規變數使用自動儲存空間,被稱為自動變數,函式呼叫結束時會自動消亡,自動變數通常儲存在棧中

·靜態儲存方式:在函式外面定義或者在宣告變數時用static

·動態儲存:new、delete

c 指標和自由儲存空間

本博文為本人閱讀c primer plus第4章復合型別後做的小筆記,僅記錄本人不熟悉或者容易犯錯的地方 指標是乙個變數,儲存的是值得位址,而不是值本身 位址運算子 可以獲得變數的所在位址 指標名表示的是位址,運算子被稱為間接值 indirect value 或者解除引用 dereferencing...

c 學習之 指標和自由儲存空間

1.申明和初始化指標 int p1 這表明 p1的型別為int 由於 操作符被用於指標,因此p1變數本身必須是指標。可以這樣說,p1是指標 也即是位址空間 p1是int,而不是指標 順便說一下,操作符兩邊的空格是可選的 傳統上c程式設計師用 int p1,而很多c 程式設計師用int p1 可以在申...

8 C 指標和自由儲存空間

8 c 指標和自由儲存空間 電腦程式在儲存資料時必須跟蹤3中基本屬性。指標是 乙個變數,其儲存的是值得記憶體位址 對於常規變數的位址,只需要對變數應用位址運算子 就可以獲得它的位置 例如,如果home是乙個變數,那麼 home就是他的位址。include stdafx.h include 引用庫函式...