指標基本宣告與使用
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位系統下,指...