char型別的變數要占用1位元組,所以p+1代表p的值加1;float型別的變數占用4位元組,所以p+1代表p的值加4。
從這一點,也可以很好地說明為什麼指標一定要分型別,不同型別的指標,p+1的含義是不一樣的。
1 // 定義乙個int型別的陣列
2 int a[4] = ;
3 4 // 定義乙個int型別的指標,並指向陣列的第0個元素
5 int *p = a;
6 7 int i;
8 for (i = 0; i < 4; i++)
引用乙個陣列元素可以有兩種方法:
1.下標法: 如a[i]
2.指標法: 如*(p+i) 或 *(a+i)
如果乙個函式的形參型別是乙個陣列,呼叫函式時,你可以傳入陣列名或者指標變數;
1 void change(int b)
如果乙個函式的形參型別是乙個指標變數,呼叫函式時,你可以傳入陣列名或者指標變數。
1 void change(int *b)
指向陣列元素的指標
乙個變數有位址,乙個陣列包含若干元素,每個陣列元素都在記憶體中占用儲存單元,它們都有相應的位址 指標變數既然可以指向變數,當然也可以指向陣列元素 把某一元素的位址放到乙個指標變數中 所謂陣列元素的指標就是陣列元素的位址 定義乙個指向陣列元素的指標變數的方法,與以前介紹的指向變數的指標變數相同 例如 ...
指向二維陣列元素的指標變數
1 指向陣列元素的指標變數 例1.有乙個3x4的二維陣列,要求用指向元素的指標變數輸出二維陣列各元素的值.編寫程式 1 include 2 intmain 3 5int p 6for p a 0 p a 0 12 p a 0 代表列指標的起點,p依次指向下乙個元素 712 printf 4d p 1...
C指標 指向陣列的指標和指向陣列內部元素的指標
int p 5 arr 這裡的 也可以不寫,因為陣列名本身就表示陣列的首位址 int p arr int p arr int p arr 0 上面三種宣告方式都是合法且等價的 int a 5 int p a 指向陣列元素的指標,用來訪問陣列內部的元素,單位長度是sizeof int int q 5 ...