指標和陣列的區別是什麼?

2021-08-28 09:38:19 字數 568 閱讀 1102

char array[10];

char *pt;

pt=array;

char array[10];的含義是,在記憶體裡開闢乙個10個位元組的空間用來存放資料,其中array是這個空間的頭位址,正如剛才所說,陣列是乙個位址。

char *pt;的含義是,只是定義乙個指標pt,這個指標可以指向任意char型的位址,而指向的位址則存放在位址*pt中,也就是剛才說的指標是指向位址的位址。

那麼好,pt=array;的意思就是我們把*pt中存放的位址(指標)指向了陣列array[10]的頭位址array,這個時候pt和array辯證的統一了,區別用通俗的話說就是陣列是地名,指標是路牌。但是別忘了,在這個例子中,陣列實實在在的占用了10個位元組的空間,而指標只占用了4個位元組用來存放位址而已(假設是32bits系統)。

最後我們總結一下區別:

陣列:儲存資料;直接訪問資料;用於儲存數目固定且型別相同的資料;由編譯器自動分配和刪除;自身即為資料名。

指標:儲存位址;間接訪問資料(先取得指標的內容,然後以它為位址,取得資料);通常用於動態資料結構;動態的分配和刪除;通常指向隱式資料。

筆記 「引用」與指標的區別是什麼

相同點 1.都是位址的概念 指標指向一塊記憶體,它的內容是所指記憶體的位址 引用是某塊記憶體的別名。區別 1.指標是乙個實體,而引用僅是個別名 2.引用使用時無需解引用 指標需要解引用 3.引用只能在定義時被初始化一次,之後不可變 指標可變 4.引用沒有 const,指標有 const 5.引用不能...

c 引用和指標的區別是什麼?

區別 1 指標有自己的一塊空間,而引用只是乙個別名 2 指標在使用中可以指向其它物件,但是引用只能是乙個物件的引用,不能被改變 3 指標可以有多級指標 例 p 而引用至於一級 4 指標和引用使用 運算子的意義不一樣。相關推薦 c 教程 1 變數 首先最重要的,variable的定義,當你申明乙個變數...

GBDT,XGBoost,RF的區別是什麼?

rf gbdt和xgboost都屬於整合學習 ensemble learning 整合學習的目的是通過結合多個基學習器的 結果來改善單個學習器的泛化能力和魯棒性。根據個體學習器的生成方式,目前的整合學習方法大致分為兩大類 即個體學習器之間存在強依賴關係 必須序列生成的序列化方法,以及個體學習器間不存...