C語言基礎 C語言指標 5 指標和陣列

2021-06-28 02:02:08 字數 1436 閱讀 4771

上一節, 我們補充了一點關於指標的小知識, 這次我們來講講指標和陣列:

首先, 我們來看乙個小例子:

#include int main()

;

int *p;

p = &ages[0];

printf("p = %d\n", *p);

return 0;

}

輸出的結果:

有些人看到後, 知道是可以這樣子傳值, 但如果我們把整個陣列的所有元素列印出來呢? 我們應該怎麼做? 記憶體中又是怎樣存的? 下面我們來看看乙個例子:

#include int main()

;

int *p;

p = &ages[0];

for (int i = 0; i < 5; i++)

return 0;

}

輸出的結果:

沒錯, 按照上面的例子, 我們知道是可以這樣子輸出陣列裡所有的元素, 那麼為什麼這樣子做是可行的呢? 下面我看看關於記憶體的示意圖:

看完示意圖之後, 我們來解釋一下:

當p = &ages[0]的時候, p的位址就是陣列ages第0個元素的位址, 也就是說p其實就是陣列元素, 切記不是指向陣列, 所以當我們更改p的元素的時候, 也就是說更改陣列ages的元素, 所以也就是我們所輸出的結果, 當然還有其他辦法更換, 比如下面這個例子:

#include int main()

;

int *p;

p = &ages[0];

p += 1;

printf("p = %d\n", *p);

return 0;

}

由前面一句p = &ages[0] 的時候, 我們就知道p所存的位址就是第0個元素的位址, 一旦該位址+1, 也就是第1個元素的位址, 但位址加多少, 這個取決於指標的型別,比如int * 4, double * 8 以此類推, 所以我們也可以實現這樣子去改變p的值, 當然你也可以寫乙個函式去實現更改位址, 比如下面這個例子:

#include void change(int *array);

int main()

; change(ages);

return 0;

}void change(int *array)

C語言基礎 C語言指標 3 指標的指標

上節課,我們講解了一些注意的事項以及指標的寫法,這節課我們來講解一下什麼叫做指標的指標.指標的指標,顧名思義就是指向指標的指標,當有乙個定義了乙個整型變數,定義乙個指標變數指向該整型變數,那麼指標變數存的位址就是整型變數的位址,而指標的指標指向該指標,那麼存的就是該指標的位址,下面我們看看示意圖 在...

c語言程式設計(5)指標

指標是 c 語言中乙個重要的概念,也是 c 語言最精彩的部分。正確而靈活的運用它,可以是程式簡潔 緊湊 高效。指標變數是一種特殊的變數,它存放的不是資料,而是另一種變數的位址。這個存放資料的變數被稱為指標變數所指向的目標變數。由於通過指標變數中的位址可以直接訪問它指向的目標變數,常把指標變數簡稱為指...

C語言基礎四 指標

指標表示乙個位址,什麼型別的指標就應該指向什麼型別的記憶體空間,例如int 型別的指標就應該指向乙個int型別的空間。int a 7 int p null 指標的定義 p a 指標的繫結 p 5 指標的解引用對於同型別指標p1,p2,一般有這幾種運算 p1 3,p1 3,p2 p1 int a 5 ...