通過位址間接操作所指向的空間
二級指標
指標是一種資料型別,就像int 裝整型資料,float裝浮點型資料,指標裝位址資料。
int
*p;//
形式:型別+*+變數名組成
int a=
12;//賦值
int*p;
//賦值
p=&a;
//賦值
int*p=
&a;//初始化
printf
("%d,%d,%d"
,&p,p,
&a);
int
*p=&a;
//*p和下面的*p不一樣,第乙個是標記作用,代表它是指標
//讀printf
("%d,%d,%d"
,p,*p,a)
;//第二個表示記憶體操作運算子(可以讀寫取)
//寫*p=
145;
//a也變成145
printf
("%d,%d,%d"
,p,*p,a)
;//取位址
printf
("%p,%p,%p"
,p,*p,
&a);
p指向乙個變數,*p就是變數本身
p是指向空間的位址,&p是p變數自己的位址
double b=
123.123
;int
*p1=
&b;printf
("%lf,%lf\n"
,*p1,b)
;
這麼寫會出問題應該是:
double b=
123.123
;double
*p1=
&b;printf
("%lf,%lf\n"
,*p1,b)
;
乙個小範圍指標可以指向大位元組的空間,並且操作不異常,雖然結果有問題
但大範圍指標不可以指向小範圍空間,且操作異常,結果有問題
int a=12;
int*p=
&a;int
**p1=
&p
如
int a=12;
int*p=
&a;//二級指標
int*
*p1=
&p;//二級指標裝1級指標位址
int*
**p2=
&p1;
//**指標裝2級指標位址
system
("pause");
return
0;
指標變數有自己的位址
int *p1=p只能值傳遞,不能取p位址
應該是nt *p1=&p
二級指標與陣列無關
int
main
(void
)
C語言入門之 指標
存放位址的變數稱為指標變數。指標變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是資料本身,而指標變數存放的是資料的位址。假設在程式中宣告了1個int型的變數a,其值為68。系統為變數a分配的首位址為0x65fdf4h,p a是存放變數a位址的指標變數,即p a中存放的值為0x065fdf4...
C語言入門之指標用法教程
對於c語言初學者來說,需要明白指標是啥?重點就在乙個 指 上。指啥?指的位址。啥位址?記憶體的位址。上面說明就是指標的本質了。這裡再詳細解釋下。資料存起來是要存在記憶體裡面的,就是www.cppcns.com在記憶體裡圈出一塊地,在這塊地里放想放的東西。變數關心的是這塊地里放的東西,並不關心它在記憶...
C語言 指標入門
在我年輕的時候,我三次鼓起勇氣學習c,三次都倒在了指標上 雖然很清楚指標是一種存放位址的變數,但是他具體是乙個什麼意思呢?我把整個空間看成乙個 n 1 維的空間。n 是資料型別,可能是int,char,double,等等。1 是位址。把位址看成一根數軸。舉個粒子 int pa int a 5 pa ...