指標基礎語句
阿新 • • 發佈:2018-11-06
有人說C語言的精華是指標,可見指標的作用以及難度係數,那麼今天我們就來看一下:1.指標的特殊性;2.指標基礎語句的含義。
- 指標的特殊性:
[1]指標(也稱地址)也是一個變數型別,和int,char一樣,但它有兩個特殊的符號: &和“ * ".
&a表示獲取a的地址,稱為取址符;
我們在定義變數時有著一定的規則:
char a = 'x';.//字元變數存放字元
int b = 10;//整形變數存放整形值
double = 23.4;//浮點變數存放浮點數
所以有什莫變數存放什莫型別的值。&a表示整形地址值,需要整形地址變數來儲存它,地址即為指標,所以有
int * p = &a; // p 儲存了a的地址
p和a建立了聯絡。那我們怎麼通過p得到或修改a地址裡的值呢,這就有“ * ”的出現.
“ * ”被稱為解引用,即間接訪問指標所指向地址裡的值。
a=50;
*p=50//表示訪問p所指向地址的內容,p裡面的地址是a的,a的值是50,所以*p=50
[2 ]" * "的用法:
在3*4中為乘法符號
int * p=&a;表示p為整形地址變數,*表示資料型別
*p=10;表示間接訪問符,解引用。
[3 ] 指標的賦值:
指標在賦值時一定嚴格相等,即同一型別才可以賦值
e.g:
short b = 10;
short *p = &b;正確的
char a = ‘a’;
int *p1 = &a;
這是錯誤的,因為a為char型別,而p1為整形,所以錯誤
2. 指標基礎語句的含義:
- [1 ] 一級指標:
int a = 10;
int *p = &a;//表示p和a建立了聯絡,儲存著a的地址
*p = 10;// * 表示解引用p,即到達p所指向的變數的值,所以*p=a=10;
如圖所示
- [2]二級指標
p可以作為整形指標變數可以指向別人的地址,那麼它的地址可不可以也用一個變數來儲存呢?要想儲存整形指標值得地址,就要用整形指標地址變數來儲存,即**k,我們稱它為二級指標。
int **k=&p; //用二級指標來儲存p得地址 *k=&a; //對二級指標進行一次解引用,到達p,p裡放的是a的地址,所以*k=&a **k=1000; //對k進行二次解引用,先到p,在解引用p,p儲存的是a的地址,所以a的值被修改了,為a=1000;
如圖所示:
希望大家牢記指標的性質和用法,下次見!