指標學習筆記

2021-10-24 20:28:11 字數 2188 閱讀 8470

指標基本宣告與使用

int num =1;

int*pnum =

#int nums[5]

=;int*pnums = nums;

int*p =

newint[10

];*p =

10;

cout << pnum <<

":"<<

*pnum << endl

<< pnums <<

":"<<

*pnums << endl

<< p <<

":"<<

*p << endl;

delete

p;//將指標置為空

pnum =0;

//int zero = 0; pnum = zero; 錯誤:不能把int變數直接賦給指標

pnums =

null

; p =

nullptr

;

執行結果:

0x62fe40:1

0x62fe38:1

0x7c1570

:10

指標與陣列

char achar[10]

; cin >> achar;

cout << achar << endl;

char

*pchar =

"word"

; cout <<

(int

*)pchar <<

":"<< pchar <<

":"<<

*pchar << endl;

//copy位址;

pchar = achar;

//copy內容:

pchar =

newchar

[strlen

(achar)+1

];//'\0'

strcpy

(pchar, achar)

; cout <<

" pchar: "

<< pchar <

hello

0x406068

:what:w

pchar: hello

指標函式與函式指標

函式指標指的是函式的返回值為指標型別,例如:

char

*fun()

指標函式本質上也還是指標,只是這個指標指向的是乙個函式

宣告格式:型別說明符 (*函式名) (引數)

例如:

int

add(

int x,

int y)

intsub

(int x,

int y)

//指標函式

int(

*fun)

(int x,

int y)

;int

main()

輸出結果為:

(

*fun)(1

,2)=

3(*fun)(5

,3)=

22

指標常量與常量指標

指標常量的宣告:資料型別 * const 指標變數。

常量指標的宣告:資料型別 const * 指標變數 或者 const 資料型別 *指標變數。

常量指標常量的宣告:資料型別 const * const 指標變數 或者 const 資料型別 * const 指標變數。

指標常量是指向常量的指標,不能通過指標修改指標指向的值,但是可以修改指標的指向

int i =

1, j =2;

intconst

*p =

&i;//或者是 const int *p

//*p = j;錯誤:不能通過指標修改指向的值

p =&j;

//正確:可以修改指標的指向

常量指標指的是不能改變指標的指向,但是可以改變指向位址的值

int i =

1,j =2;

int*

const p =

&i;//p = &j; 錯誤:不能改變指標指向

*p = j;

指標學習筆記

1 指標是什麼?要想明白指標的含義,首先應該明白變數在記憶體中是如何儲存的,如何讀取的。記憶體中每個記憶體單元都有乙個位址,這好比旅館中每個房間,都有唯一的房間號。至於記憶體單元中到底存放的是什麼內容,那是我們定義的變數。當我們定義乙個變數時,系統會根據我們宣告的資料型別而為變數分配適當的儲存空間。...

this指標學習筆記

1.this指標的用處 乙個物件的this指標並不是物件本身的一部分,不會影響sizeof 物件 的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加...

指標學習筆記

記憶體位址所指向的是當前儲存資料的首位址,資料型別所指向的是當前儲存資料的長度 占用多大的記憶體空間 指標是一種資料型別,也需要占用記憶體空間,它的屬性是指向乙個資料型別的首位址和長度。指標儲存的是位址,長度取決於指標的型別。在32位系統下,指標占用的空間為32bit 4byte 在64位系統下,指...