天天看點

指針

指針本質就是一個位址,告訴我們變量存儲在記憶體的什麼位置,程式做的每一件事都要讀取或者寫入記憶體。指針隻是一個位址,它是一個整數,存儲着一個記憶體位址。

空指針,給指針賦予一個為0的位址,0實際上不是一個有效的記憶體位址,這就意味着這個指針時無效的,但對于指針來說,記憶體位址無效是一個可以接受的狀态。

指針

 通路變量的位址,我們使用&符号,将&加在變量之前,加入斷點對程式進行調試可以看到ptr中存放了var的位址,以16進制形式

指針

 我們可以複制這個位址,打開調試->視窗->記憶體,将這個位址粘貼進去

指針

 可以看到一個整數是四個位元組,var的值8正存在這個位址中。

同樣的,對位址進行讀寫,修改器中儲存的資料,我們需要在位址前面加上*

指針

 下圖的意思是配置設定一個8位元組的記憶體,傳回一個指向記憶體首位址的指針

指針

 調用函數memset,使用指定資料填充記憶體,在記憶體中直接敲buffer,可以看到他的位址,并且其中存折連續8個值為9的變量

指針

 但是指針本身也是一個變量,是以可以用指針來指向其他的指針(二級指針),在記憶體中可以檢視到buffer中存放着八個9,buffer表示他們的首位址,而ptr表示buffer的位址。調試程式,現在記憶體視窗輸入ptr,可以看到buffer的值

指針
上一篇: this指針
下一篇: 指針

繼續閱讀