重學c c 之指標

2021-10-24 02:22:32 字數 1814 閱讀 6518

一:什麼是指標?

指標是用來存放變數位址的,可以直接訪問操作記憶體。

二:指標的定義和使用

指標變數定義語法:資料型別 * 變數名;

//第一種

int*p;

int a=3;

p=&a;//第二種

int a=3;

int*p=

&a;

三:指標所佔的記憶體空間

//64位

cout <<

sizeof

(int*)

sizeof

(double*)

sizeof

(float*)

sizeof

(bool *

)

sizeof

(char*)

cout <<

sizeof

(int*)

sizeof

(double*)

sizeof

(float*)

sizeof

(bool *

)

sizeof

(char*)

四:空指標

指標變數指向記憶體中編號為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...