一:什麼是指標?
指標是用來存放變數位址的,可以直接訪問操作記憶體。
二:指標的定義和使用
指標變數定義語法:資料型別 * 變數名;
//第一種
int*p;
int a=3;
p=&a;//第二種
int a=3;
int*p=
&a;
三:指標所佔的記憶體空間
//64位
cout <<
sizeof
(int*)
/8 cout <<
sizeof
(double*)
/8 cout <<
sizeof
(float*)
/8 cout <<
sizeof
(bool *
)/8 cout <<
sizeof
(char*)
/8//32位
cout <<
sizeof
(int*)
/4 cout <<
sizeof
(double*)
/4 cout <<
sizeof
(float*)
/4 cout <<
sizeof
(bool *
)/4 cout <<
sizeof
(char*)
/4
四:空指標
指標變數指向記憶體中編號為0的空間,空指標指向的記憶體是不可訪問的。
0~255的記憶體編號是系統占用的,不可訪問。五:野指標
int
* p =
(int*)
0x1100
;cout <<
*p << endl;
六:const修飾指標
const修飾指標有三種情況:
1,常量指標(const int * p = &a)
指標的指向可以修改,但是指標指向的值不可以修改
int a =10;
int b =20;
const
int* p =
&a;*p =20;
//錯誤,指標的值不可以改
p =&b;
//正確,指標指向可以改
2,const修飾常量——指標常量(int * const p = &a)
值可以改,但是指向不可以改
int a =10;
int b =20;
const
int* p =
&a;*p =20;
//正確,指標的值可以改
p =&b;
//錯誤,指標的指向不可以改
3,const既修飾指標,又修飾常量
指標的指向和值都不可以修改
int a =10;
int b =20;
const
int* p =
&a;*p =20;
//錯誤,指標的值不可以改
p =&b;
//錯誤,指標的指向不可以改
重學C 系列 復合型別之指標
指標是 指向 另外一種型別的復合型別。與引用類似,指標也實現了對其他物件的間接訪問。定義指標型別的方法將宣告符寫成 d的形式,其中d是變數名。若乙個語句中定義了幾個指標變數,每個變數前面都要有宣告符 int p1,p2 定義了兩個指向int型物件的指標,p1 p2 double dp,dp2 定義了...
c c 之指標的指標總結
指標變數p的值是001bfd18,而 號的作用是取值,p即取位址001bfd18中存放的值 其實p中存放的是位址,只是當cout時,如果指標是字元型指標,那麼會輸出p中位址指向的記憶體中的內容 這裡是h 直到遇到 0 才結束。所以直接輸出p時會輸出hello,而將p強制轉換為void 時輸出的是位址...
C C 之 指標與陣列
在c語言中乙個陣列 例如 int a 5 輸出 a 和 a 0 你會發現位址是一樣的值 a本身就存放的是陣列第乙個元素的位址值 所以a就是乙個指標,資料型別為int 資料就是個特殊的指標。舉乙個例子 輸出乙個陣列中的所有元素 include void shuchu int int void xiug...