指標的問題1

2021-07-03 18:07:44 字數 672 閱讀 6796

指標使用前需要先行定義變數。就像下面這樣

#include

int main ()

int number =20;

int *pointer=&number;

int a =0;

a=*pointer +5;

result 0;

很明顯這個簡單的程式執行的結果是25;

那麼問題來了,假如我在指標被賦值變數位址之後對變數進行新的賦值會發生什麼情況呢?

程式如下:

最後的執行結果卻是15。

可以看出當使用已宣告變數對指標進行初始化後,改變變數的值,指標的值會隨著變數改變。

同樣的即是未在初始化的時候給指標賦值,在之後賦值的結果是一樣的:

指標 1的問題

指標 1 並不是指標代表的位址值 1.char a a char p a cout void p void p 1 輸出 0012ff33 0012ff34 p指向的是乙個字元,p 1就是移動乙個字元大小,乙個字元就是乙個位元組,所以p 1 代表的位址就比 p 代表的位址大1。int i 1 int...

2021 02 08 一些指標的問題(1)

4.空指標和野指標 4.1 不能向空指標和野指標指向的記憶體進行操作,如果操作程式中斷。4.2 野指標的情況 4.2.1 指標變數未初始化 4.2.2 mallo後free 未置空。4.2.3 指標變數超出了作用域 4.3 空指標 可以重複釋放。4.4 野指標 不可以重複釋放。5.指標的步長 5.1...

指標 1的討論

ww 原則 指標的加操作,是指標對應資料型別的大小的加,比如 char p p p sizeof char p 1 int p p p sizeof int p 4 因此在上面的例子中 int ptr int a 1 a是指向a的指標,當把 的時候,這個指標需要加上sizeof a 的值,因此 的結...