區別:
c語言把記憶體劃分成四個區,它把一般的變數和陣列等存在於記憶體中的棧區,所以陣列在c語言的定義中只是一組同型別的普通變數,即使這個變數有可能是指標。所以他的作用比指標小的很多,而指標可以指向任何區的任何資料,所以就會覺得指標和陣列名很像,但是必須要注意的是,陣列名只是指標中的一種,它是指標中只指向棧區的且指標的移動範圍是有限的,即陣列長度。而且陣列在定義之初就已經有了自己的記憶體,一般的指標如果未指向某乙個記憶體塊時,它是沒有自己的記憶體的,即所謂的
野指標。
聯絡:如上面所說,陣列只是定義在棧區的乙個
連續變數
,它的首位址就是乙個指標。
總結:不僅陣列有指標,所有變數都有指標,指標說白了就是記憶體中的位址,就像乙個房間必須有乙個房間號。在
c/c++
語言中定義乙個指標,就是在棧區開闢乙個記憶體空間用來存放它指向的記憶體位址,然後給指標賦值,就是把位址值賦值給剛才開闢的記憶體空間,然後通過訪問該記憶體中的位址值來間接訪問該位址下存放的資料。如果該位址值指向的是一塊靜態儲存區,如
字串常量
等,當然就不可以修改指向的內容。
陣列與指標區別和聯絡
在函式中陣列退化為指標 int ar int n sizeof ar sizeof ar 0 ar 0 100 ar 0 100 for int i 0 iprintf d d d n ar i ar i i ar ar i ar i i ar 輸出三列相同的值 int p ar 正確 int p ...
陣列和指標的區別與聯絡
指標和陣列的不同 1.指標和陣列儲存的資料內容不同 指標儲存指標變數,即儲存資料的位址 陣列儲存同一型別資料的值 2.指標用於動態資料結構,就是說指標儲存的資料可以改變 而陣列用於儲存固定數目且資料型別相同的元素即一旦陣列的大小定了就不容易變了 3.指標用malloc 和free 來分配空間和釋放空...
指標陣列 陣列指標 陣列的區別與聯絡!
一 基本定義 1.指標陣列 char arr 4 arr就是我定義的乙個指標陣列,它有四個元素,每個元素是乙個char 型別的指標,這些指標存放著其對應字串的首位址。1 這個指標陣列有多大呢?答案是16個位元組,因為它是乙個指標陣列。這是廢話,正話下面說 每當出現這些問題時,腦子裡一定要第一時間反應...