指針的作用?
1.指針允許你以更簡潔的方式引用大的數據結構
程序的數據結構從原子級別的數據結構:整型、浮點型、字符型、枚舉型,到分子級別的數組、結構體(又稱為“記錄”),再到數據結構中的隊列、棧、鏈表、樹等,無論如何復雜,數據結構總是位于計算機的內存中,因此必有地址。利用指針就可以使用地址作為一個完整值的速記符號,因為一個內存地址在內部表示為一個整數。當數據結構本身很大時,這種策略能節約大量內存空間
2.指針使程序的不同部分能夠共享數據
類似于共享內存,如果將某一個數據值的地址從一個函數傳遞到另外一個函數,這兩個函數就能使用同一數據。
3.利用指針,能在程序執行過程中預留新的內存空間
大多數情況下,可以看到程序使用的內存是通過顯式聲明分配給變量的內存(也就是靜態內存分配)。這一點對于節省計算機內存是有幫助的,因為計算機可以提前為需要的變量分配內存。但是在很多應用場合中,可能程序運行時不清楚到底需要多少內存,這時候可以使用指針,讓程序在運行時獲得新的內存空間(實際上應該就是動態內存分配),并讓指針指向這一內存更為方便。
4.指針可以用來記錄數據項之間的關系
在高級程序設計應用中,指針被廣泛應用于構造單個數據值之間的聯系。比如,程序員通常在第一個數據的內部表示中包含指向下一個數據項的指針(實際上就是鏈表了),來說明這兩個數據項之間有概念上的順序關系。
使用指針可以帶來如下的好處:
(1)可以提高程序的編譯效率和執行速度,使程序更加簡潔。
(2)通過指針被調用函數可以向調用函數處返回除正常的返回值之外的其他數據,從而實現兩者間的雙向通信。
(3)利用指針可以實現動態內存分配。
(4)指針還用于表示和實現各種復雜的數據結構,從而為編寫出更加高質量的程序奠定基礎。
(5)利用指針可以直接操縱內存地址,從而可以完成和匯編語言類似的工作。
(6)更容易實現函數的編寫和調用