1. 程式人生 > >指標基礎語句

指標基礎語句

有人說C語言的精華是指標,可見指標的作用以及難度係數,那麼今天我們就來看一下:1.指標的特殊性;2.指標基礎語句的含義。

  1. 指標的特殊性:

[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;

如圖所示:
在這裡插入圖片描述
希望大家牢記指標的性質和用法,下次見!