我相信很多初學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的主要場景是記憶體資料庫,作為訊息佇列來說可靠性太差,而且...