C語言知識點四 指標

2021-09-28 23:53:04 字數 1555 閱讀 8228

c語言學習筆記(四)

//32位系統,所有指標型別是4個位元組大小,64位下是8個位元組大小

int a =1;

int* p =

&a;printf

("%p\n"

,&a)

;printf

("%p\n"

, p)

;printf

("%p\n"

,&p)

;printf

("%d\n"

,sizeof

(p))

;/*00000045d9ddf7b4

00000045d9ddf7b4

00000045d9ddf7d8

8*/

野指標和空指標

任意數值賦值給指標變數沒有意義,這樣的指標就是野指標,指標指向的區域是未知的。野指標不會直接引發錯誤,操作野指標指向的記憶體區域才會出問題。

int a=

100;

int*p;

p=a;

//a的值給指標p,p位野指標。

p=0x1234

;//給指標p賦值,p為野指標。

*p=1000

;//操作野指標指向未知區域,記憶體出錯。

//記憶體位址編號為0的空間

//作業系統把0~255作為系統占用不允許訪問(讀寫)操作

int*p=

null

;//空指標

printf

("%d\n"

,*p)

;//報錯,不能訪問

萬能指標

void*為萬能指標

int a=10;

//萬能指標能接收任意型別變數的記憶體位址

void

* p=

&a;//在通過萬能指標修改變數值時,需要找到變數對應的指標型別*(

int*

)p=100

;

const

//指標間接修改常量值

intmain()

//指標間接修改常量值

int a=

10,b=20;

const

int* p=

&a;*p=

100;

//報錯,記憶體空間值不能修改

p=&b;

//可以修改指向位址

printf

("%d\n"

,*p)

;

int

*const p=

&a;*p=

100;

//可以修改

p=&b;

//報錯,不能修改

//都不能修改,但2級指標可以修改

const

int*

const p=

&a;

C 六 指標知識點

文章內容是把黑馬的課堂筆記選擇性的複製過來,便於後期學習,非原創!1 指標變數和普通變數的區別 指標變數 int char float double 2 指標所佔記憶體 所有指標型別在32位作業系統下是4個位元組,在64位作業系統下佔8個位元組。int main 3 空指標和野指標 int main...

C語言基礎四 指標

指標表示乙個位址,什麼型別的指標就應該指向什麼型別的記憶體空間,例如int 型別的指標就應該指向乙個int型別的空間。int a 7 int p null 指標的定義 p a 指標的繫結 p 5 指標的解引用對於同型別指標p1,p2,一般有這幾種運算 p1 3,p1 3,p2 p1 int a 5 ...

C語言指標基礎知識點 九 指標陣列和多重指標

指標系列目錄 c語言指標基礎知識點 一 指標及指標變數 c語言指標基礎知識點 二 指標變數的引用 c語言指標基礎知識點 三 指標變數作為函式引數 c語言指標基礎知識點 四 通過指標引用陣列 c語言指標基礎知識點 五 用陣列名作函式引數 c語言指標基礎知識點 六 通過指標引用多維陣列 c語言指標基礎知...