按變量的地址(變量名/變量的外號) 存取變量的值數組
將變量的地址放在另外一個內存單元中,先到另外一個內存單元中取得變量的地址,再由變量的地址找到變量並進行數據存取ide
變量Pointer是一個指針變量(自己是一個變量),它存儲的是另外一個變量的內存地址(i的內存地址),咱們說pointer指向i指針
一個變量存儲了另外一個變量的內存地址,咱們說它指向i(另外一個變量)blog
指針的概念:一個變量的地址稱爲該變量的指針內存
指針變量:專門用於存儲其它變量地址的變量it
指針與指針變量的區別,就是變量值與變量的區別class
指針變量的三要素變量
float *p1=p1的地址float
方式一:指針變量名 =&變量名; &->取地址符im
方式二:經過另外一個指針變量賦值
int i ,*p1,*p2; //聲明一個變量i,指針p1和指針p2
賦值方式一:p1=&i
賦值方式二:p2=p1
例如:int *p,i;
char *q,c;
p=&i;
q=&c;
內存地址示意義以下:
int 型佔據 2個字節,char型佔據1個字節
求: p++ ,q++
p++ 即 i的地址移1位(2個字節)
q++,即c的地址移動1位(1個字節)
數組的名稱就是一個指針
三、兩個運算符
*:求其後內存地址中的內容
&:求變量的內存地址
pointer_1指向a,pointer_2指向b
----------------------- 分割線 ---------------------
問:若已執行了 pointer_1=&a,則:&*pointer_1的含義是什麼?
答:pointer_1=&a ,這時pinter_1存儲的是 a的地址,
*pinter_1 是取指針所指向的值,也即 a
因此 &*pinter_1 就是取 a的地址,至關於 &a
*取內容,&取地址,二者是互異的,互相抵消
問:*&a的含義是什麼?
答:&a取的是地址,*地址取的是內容,因此*&a 就是a
問:(*pinter_1)++至關於什麼?
答:*pointer_1 是取pointer_1所指向的值,因此這裏至關於 a++