指標和陣列的區別:
空間分配:
指標是動態分配空間,通過malloc在堆上分配所需要的空間,分配的空間不一定連續,在使用完之後需要呼叫
free
()來釋放分配空間。
陣列是靜態分配空間,在全域性變數區或者棧上分配空間,分配的空間是連續的,區域性變數在生命週期結束後自動釋放,全域性變數在程式結束完自動釋放。
訪問效率:
指標通過位址間接訪問,而陣列是直接訪問數值,因此指標的訪問效率低,陣列的訪問效率高。
安全性:
指標使用不當會造成記憶體洩漏,陣列使用不當會造成陣列越界。
函式越界:
陣列要用相應的指標當形參,而指標需要指標的指標來當形參。
為什麼我們還需要用指標呢?
陣列空間利用率不高,指標只佔4個位元組,空間利用率高
c語言有了指標可以直接訪問硬體
指標比較靈活,提高了訪問的靈活性,易造成記憶體洩漏。
指標陣列和陣列指標的區別
這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解。指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an ar...
指標陣列和陣列指標的區別
這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解。指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an ar...
指標陣列和陣列指標的區別
這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解。指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an ar...