指针和数组的区别是什么?
生活随笔
收集整理的這篇文章主要介紹了
指针和数组的区别是什么?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 指針和數組的區別是什么?
其實數組是一個地址,指針則是指向地址的地址。
舉個例子:
char array[10];的含義是,在內存里開辟一個10個字節的空間用來存放數據,其中array是這個空間的頭地址,正如剛才所說,數組是一個地址。
????
char *pt;的含義是,只是定義一個指針pt,這個指針可以指向任意char型的地址,而指向的地址則存放在地址*pt中,也就是剛才說的指針是指向地址的地址。
????
那么好,pt=array;的意思就是我們把*pt中存放的地址(指針)指向了數組array[10]的頭地址array,這個時候pt和array辯證的統一了,區別用通俗的話說就是數組是地名,指針是路牌。但是別忘了,在這個例子中,數組實實在在的占用了10個字節的空間,而指針只占用了4個字節用來存放地址而已(假設是32bits系統)。
????
最后我們總結一下區別:
????
數組:保存數據;直接訪問數據;用于存儲數目固定且類型相同的數據;由編譯器自動分配和刪除;自身即為數據名。
指針:保存地址;間接訪問數據(先取得指針的內容,然后以它為地址,取得數據);通常用于動態數據結構;動態的分配和刪除;通常指向隱式數據。
總結
以上是生活随笔為你收集整理的指针和数组的区别是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 说明使用assert和防错代码的区别
- 下一篇: 编写一个自己的完全C语言版本的memse