03 C 程式設計魅影-指標
阿新 • • 發佈:2018-11-21
指標
一,記憶體指標
概述:
硬體上來描述,記憶體是物理裝置,功能上描述,記憶體是是一個儲存倉庫,程式在執行前都要被裝載到記憶體中,才能被中央處理器執行
要點:
1,記憶體是由按順序編號的一系列儲存單元組成的,在記憶體中每個儲存單元都有唯一的地址編號,通過地址可以方便的在記憶體單元中存取資訊。
2,記憶體地址是連續的,相鄰記憶體單元間的地址相差一,當定義變數時,系統根據變數的型別分配相應的一個或多個記憶體單元,而這個變數佔有的第一個記憶體單元的地址作為該變數的地址。
二,取地址符
&,用於表示某個變數的地址
格式:
&變數名
三,指標與指標變數
C語言用指標型別表示表示指標,用指標變數儲存指標。指標變數也叫指標型別變數。
四,指標變數定義
格式:
型別符 *指標變數名
示例:
int *p;
1,指標變數只能指向同類型的變數
2," * "是一個說明符,說明該變數是指標變數
五,指標變數初始化
1,特殊方式
指標懸空: int *p = NULL;
2,常用方式
方式一:
int a;
int *p = &a;
方式二:
int a;
int *p;
p =&a;
六,指標與陣列
1,指向一維陣列的指標變數
陣列是儲存在一片連續的記憶體區域中,當指標指向陣列時,對指標進行向前或者向後移動便可以訪問陣列中的元素。
2,陣列指標定義
格式:
int a[10];
int *p = &a[0];指向a陣列第0號元素
3,指標變數在陣列中的運算
約定:(適用於3-1與3-2)
陣列變數首地址2000
int a[10];
int *pa = &a[0];
3-1,自增、自減運算
pa++; //2004
運算過程:2000 + 4 = 2004
3-2,加減一個整數
pa = pa + 2; //2008
運算過程:2000 +2*4 = 2008
3-3,指標變數相減
約定:
q指向a[3]地址為20012
p指向a[1]地址為20000
q-p; //結果:3
運算過程:(20012-20000)/4 = 3
a[1]與a[3]相差3個數組元素