C C中陣列與指標的區別

2021-07-25 05:15:50 字數 454 閱讀 2518

陣列一般是在靜態儲存區被建立,要不是在棧上被建立,陣列名對應的是一塊不可變的記憶體空間,注意這裡和指標的區別是指標是指向,不是對應,指標可以指向任意的記憶體空間.

下面以乙個字串hello為例 :1.陣列表示有6個字元的陣列,陣列名表示字元'h'的位址,但是指標名是指向真個字串hello的記憶體空間

2.內容的複製與比較:不能對陣列名直接進行複製和比較,需要使用strcpy進行複製.用strcmp進行比較 ;

指標賦值的話,a=b是將a的位址賦給b,不是其內容 ,比較的話也是比較的位址不是內容 ,比較內容也是需要用strcmp來比較

3.計算記憶體容量,陣列使用sizeof是真個陣列所佔的記憶體,但是指標的話得到的是乙個指標變數的位元組數4;

注意 : 當陣列作為函式的引數進行傳遞時,陣列會自動退化成同型別的指標,所以不論陣列的容量是多少,sizeof都是佔4個位元組(32位平台下,指標的長度(占用記憶體的大小)為4位元組).

C C 陣列名與指標區別

1 陣列名不是指標 1.include 2.int main int argc,char argv 3.第6行輸出10,第7行輸出4 指標長度是4,所以陣列名不是指標 2 陣列名神似指標 上面程式第五行,陣列名可以賦值給指標 1.include 2.include 3.int main int ar...

C C 陣列名與指標區別

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

C C 陣列名與指標區別

魔幻陣列名1.include 2.int main int argc,char argv 3.1 陣列名不是指標 我們先來推翻 陣列名就是指標 的說法,用反證法。證明 陣列名不是指標 假設 陣列名是指標 則 pstr和str都是指標 因為 在win32平台下,指標長度為4 所以 第6行和第7行的輸出...