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語言指標基礎知...