C 入門 2 指標

2021-07-27 22:11:07 字數 1406 閱讀 6055

電腦程式在儲存資料時必須跟蹤以下3個屬性

#include 

int main()

輸出如下,顯示位址時,該實現的cout使用十六進製制法,因為這時常用於描述記憶體的表示法。

a

value = 6

anda address is 0x7ffedf68996c

b value = 4.5

and b address is 0x7ffedf689970

物件導向(oop)與傳統過程性程式設計的區別在於,oop強調的是在執行階段決策,這樣更靈活。如在c++中宣告陣列,必須指定陣列長度,這就是編譯階段決策。而下文就就會提到,c++通過oop使用關鍵字new請求正確數量正確的記憶體以及使用指標表來跟蹤新分配的記憶體的位置。

#include 

int main()

values: updates = 6, *p_updates = 6

addresses: &upadates = 0x7fffa344041c, p_updates = 6

now updates = 7

計算機需要跟蹤指標指向的值的型別,因此在指標宣告時必須指定指標指向的資料的型別,例如

int

*p_updates

需要注意的是,對每個指標變數名,都需要使用乙個*

int

*p1, p2;

如果這樣宣告,就建立乙個指標p1和乙個int變數p2。(譯者注:p1前面的int,不代表p1是乙個int。指標和陣列一樣,都是基於其他型別的)

可以在宣告語句中初始化指標

#include 

int main()

輸出如下

5

; address = 0x7ffccfb23a2c

5; value of pointer = 0x7ffccfb23a2c

在c++中建立指標時,計算即將分配用來儲存位址的記憶體,但不會分配用來儲存指標所指向的資料的記憶體。

long * fellow;  // create a pointer to long

*fellow = 233333;

fellow確實是乙個指標,但上述**沒有將位址賦值給fellow,那麼233333將被放在**呢?我們不知道,由於fellow沒有被初始化,它可能有任何值。不管值是什麼,程式都將它解釋為儲存233333的位址,如果fellow的值碰巧為1200,計算機將把資料放在位址1200上,即使這恰巧是程式**的位址。這種錯誤可能導致一些最隱匿的錯誤

c 入門008 指標

指標是乙個變數,其儲存的是值的位址。1.宣告 初始化 賦值 int pt 指標pt指向int型別 總有人瞎定義 int pt,py 創造乙個指標pt和乙個int變數py 初始化 int yang 5 int pt yang 2.指標的危害 int pt pt yang 事實上,賦給指標只要是位址就行...

C 基礎入門 07指標

指標的作用 可以通過指標間接訪問記憶體 指標變數定義語法 資料型別 變數名 示例 int main 指標變數和普通變數的區別 總結3 對指標變數解引用,可以操作指標指向的記憶體 提問 指標也是種資料型別,那麼這種資料型別占用多少記憶體空間?示例 int main 總結 所有指標型別在32位作業系統下...

C 基礎入門 6 指標

指標變數定義語法 資料型別 變數名 int main 輸出 指標p為 00befb04 a 1000 p 1000 int main 空指標 指標變數指向記憶體中編號為0的空間 用途 初始化指標變數 注意 空指標指向的記憶體是不可以訪問的 空指標 int p null 野指標 指標變數指向非法的記憶...