首先陣列(a[10])的名字就代表乙個位址,是陣列第乙個元素的位址,即&a[0];
int * p;
p=a;就是將指標指向陣列a的第乙個元素;
或者int * p=a 與int * p=&a[0]是一樣的;
p+1的意思不是將位址直接加1,而是代表同一陣列中下乙個元素的位址,即&a[1],也可以用a+1表示。所以*(p+1)=*(a+1)=a[1];同理1換成字母 i來表示也是可以的。(a是常量,p是變數)。
注意: 不要混淆了*號的作用
在宣告乙個指標變數時,*號的作用只是表示我要建立乙個指標變數:
int *p;
而在之後的程式中,當我們寫:
printf("%d\n", *p);
這裡的*號的作用不是說「我要建立乙個指標變數」,而是「取得指標變數p儲存的位址所指向的變數的值」
陣列 指標 引用
一 指標的概念 指標是記憶體中的位址。1 語法 型別 變數名 這裡的型別是定義了這個指標指向的變數型別。2 指標的運算子 和 1 取位址符 例如 int counta 100 int mm mm counta 假設counta所在位址是2000,這是候m 2000。include void main...
陣列 指標 引用
一 指標的概念 指標是記憶體中的位址。1 語法 型別 變數名 這裡的型別是定義了這個指標指向的變數型別。2 指標的運算子 和 1 取位址符 例如 int counta 100 int mm mm counta 假設counta所在位址是2000,這是候m 2000。include void main...
陣列 指標 引用 動態陣列
因為我本身是學過這些的,這一遍是複習和總結,不會面面俱到,希望和大家一起分享。1 陣列的建立和初始化 1.1 陣列是一種完全靜態的資料結構,在建立時,陣列的維度必須是乙個在編譯時就可以確定的整形常量表示式 和switch的case後面的表示式那樣 舉個例子 int arr1 2 是合法的,const...