陣列和指標的不同之處

2021-07-05 13:34:06 字數 561 閱讀 5032

我相信很多初學c語言的人,肯定會以為指標和陣列是等價的,而那些學了一段時間的人或許也分不清兩者之間的區別吧。

那麼我有必要和大家千談一下c語言中陣列和指標的不同之處了。

1.陣列名對應著一塊記憶體,而不是指向一塊記憶體。其位址與容量在生命週期內保持不變(全域性或棧),只有陣列的內容可變;

指標可以隨時指向任意型別的記憶體塊,它的特徵是「可變」,所以我們常用指標來操作動態記憶體。指標遠比陣列靈活,但也更危險。

2.對陣列的訪問時直接的,而對指標的訪問時間接的(指標存放的是位址)

3.注意修改內容(賦值),複製內容比較內容(strcpy,strcmp),計算記憶體(sizeof)時兩者的區別

4.指標和陣列等價的場景:

1、表示式中的陣列名(與宣告不同)被編譯器當作是乙個指向該陣列的第乙個元素的指標。

2、下標總是與指標的偏移量相同。

3、在函式引數的宣告中,陣列名被編譯器當作指向該陣列第乙個元素的指標。

和equals的不同之處

int a 3 int b 3 string str1 123 string str2 123 string str3 newstring 123 system.out.println a b的結果 a b true,基本資料型別時,進行的是值比較 system.out.println str1 s...

vue和react不同之處

vue2和react的區別,細節篇 react是函式式程式設計,immutable.js vue是大部分是物件導向程式設計,object.freeze vue中函式式程式設計 filter和reduce函式用法 0.reactjs與vue相比較,預設目錄結構沒有webpack相關配置,也沒有路由元件...

mq和kafka的不同之處

其實,作為訊息佇列來說,企業中選擇mq的還是多數,因為像rabbit,rocket等mq中介軟體都屬於很成熟的產品,效能一般但可靠性較強,而kafka原本設計的初衷是日誌統計分析,現在基於大資料的背景下也可以做運營資料的分析統計,而redis的主要場景是記憶體資料庫,作為訊息佇列來說可靠性太差,而且...