指針

01
變量=空間+變量名+變量地址+變量類型

// 通過變量名找到存儲單元的地址,從而對存儲單元進行存取操作
printf ("%d\n",i);
// 在執行時,把鍵盤輸入的值送到地址爲xxxx開始的存儲單元中
scanf ("%d",&i);

以上爲直接按變量名進行的訪問,稱爲“直接訪問”方式。
還可以採用另一種稱之爲“間接訪問”的方式,即變量i的地址存放在另一變量中,然後通過該變量來找到變量i的地址,從而訪問i變量。

02

// 定義pa爲指向基本整型數據的指針變量
int *pa  = &a; 

int——基類型是int型/變量a的類型爲基本整型/指針所指向的地址中所存放的數據類型爲基本整型
int *——pa是int *型的指針變量
pa
指針變量名爲pa
指針變量pa的值爲"變量a的地址"
指向&a所在的空間

注:一個變量的地址稱爲該變量的“指針”
指針變量的值是一個地址,指針變量是存放地址的變量

03
*&a ===> *(&a) ===> *(pa) ===> a
&*pa ===> &(a) ===> pa

04
指針一般只做加減運算,其他運算沒有意義。
指針的加減和類型有關,指針加1,實際內部的值加的是指向的空間類型長度
int *pa; pa + 1 ====> (int)pa + sizeof(int)

05
一個變量的地址稱爲該變量的“指針”。例如,地址2000是變量i的指針。如果有一個變量用來專門存放另一變量的的地址(即指針),則稱它爲“指針變量”。指針變量就是地址變量,用來存放地址,指針變量的值就是地址(即指針)。
可以說變量i的指針是2000,而不能說i的指針變量是2000.指針是一個地址,而指針變量是存放地址的變量。
不對指向普通變量的指針進行加減運算,因爲這樣沒有意義

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章