陣列名和指標的區別

2021-09-03 02:30:52 字數 824 閱讀 7635

1. 己址

printf("%x %x\n", &pint, &arr);

2. 己值

陣列和指標,都是有自己的資料值的。程式中,陣列arr的資料值,是arr[0]的位址;而對於指標pint,通過

pint = arr;

之後,pint的資料值也是arr[0]的位址。

但是,有一點不一樣的是,arr的資料值是不可以改變的,是個常量;而指標變數pint的資料值,是可以改變的,你可以:

pint = arr;

你也可以:

pint = arr + 1;

隨你!另外,都可以在陣列和指標的己值上,做運算,比如:

arr + 1;

pint + 1;

3. 他值

陣列和指標,在獲取他值時,在**的寫法上是一樣的。比如對於陣列,你想獲取第2個元素的值,你可以這樣寫:

arr[1];*(arr + 1);

對於指標pint,你也可以這樣寫:

pint[1]; *(pint + 1);

也可以在陣列和指標的他值上做運算,比如:

arr[0] + 1; *arr + 1; *(arr + 1) + 1;

pint[1] + 1; *pint + 1; *(pint + 1) + 1;

4. 總結

陣列和指標在概念上是不一樣的,但是在**的寫法上,有些是一樣的。有興趣的朋友,可以結合我的文章中提出的「兩己三他」:己址、己值、他值、他址、他型這5個維度來理解。

陣列名和指標區別

前兩天同學問了我乙個問題 陣列名和指標有什麼區別,或者說這兩者有沒有區別?我回顧了下,大學課堂上老師講的,貌似記得老師說陣列名就相當於指標,比如 一維陣列就是一級指標 二維陣列是二級指標 之類的。結果同學告訴說原來我也是這麼理解的,其實 陣列名與指標有著本質的區別 然後給我推薦了一篇博文。我們經常見...

陣列名和指標的區別

魔幻陣列名 請看程式 本文程式在win32平台下編譯 1.include 2.int main int argc,char argv 3.size 3 1 陣列名不是指標 size 我們先來推翻 陣列名就是指標 的說法,用反證法。證明 陣列名不是指標 假設 陣列名是指標 則 pstr和str都是指標...

陣列名和指標的區別

引言 指標是c c 語言的特色,而陣列名與指標有太多的相似,甚至很多時候,陣列名可以作為指標使用。於是乎,很多程式設計者就被搞糊塗了。而許多的大 學老師,他們在c語言的教學過程中也錯誤得給學生講解 陣列名就是指標 很幸運,我的大學老師就是其中之一。時至今日,我日復一日地進行著c c 專案的開發,而身...