2014-05-13 17 views
0

我想知道爲什麼腳本語言(python,php,ruby,perl)沒有C/C++,Objective-C等指針?爲什麼腳本(動態)語言沒有指針?

+0

因爲通常不需要使用指針來完成大部分可能需要它們的低級語言任務。 – MrWonderful

+3

腳本語言* do *具有引用形式的「指針」。它們並不像C中那樣是內存地址,而是指特定的數據結構,值或對象。畢竟,這就是你希望他們在C中使用的內容,但是在這種情況下,沒有保護措施來避免使用無意義的地址。 – Borodin

回答

5

因爲三分球,而用途很廣,是一個痛苦的最屁股錯誤的來源。高階語言的整體觀點是將危險或冗長的結構抽象爲更安全和更短的結構:您爲了易於開發而交易權力。因此,例如,動態語言的數組都知道如何分配自己,釋放自己,甚至調整自己的大小,所以程序員不需要擔心它(並且不能搞砸)。除非我們真的想控制處理器的每個週期,否則我們通常不會在程序集中進行程序設計:太冗長,太容易犯一個錯誤(這就是爲什麼C/C++,Objective-C等等首先存在)。動態語言向着同一個方向邁進了一步。

0

問題太籠統了,也可以在Stackoverflow上回答。 但答案是 - 腳本語言試圖儘可能獨立於硬件。這包括沒有RAM結構和內容的知識。

0

這兩個類別之間的主要區別在於,腳本語言不一定直接處理諸如內存之類的內容。在你的C語言中你有內存並且必須分配和管理它。然而,在PHP中,你通常不直接管理你的內存(在大多數情況下,內存使用對程序員來說是透明的)。底層軟件爲您做到這一點。因此完全可以在不知道機器級代碼,malloc等的情況下編寫軟件。