在我所知道的和我已經接觸到的編程語言中,C++看起來是唯一具有指針和引用的編程語言。這是真的嗎?C++是具有指針和引用的單一語言嗎?
回答
Algol 68和Pascal當然可以。 IIRC,阿達也是,儘管我不記得所有的細節。 PL /我也做了 - 它可能(很容易)是第一個包括兩者。
Algol 68的引用實際上更像是C++指針。在C++中,一旦你初始化一個引用,它總是指向同一個對象。在Algol 68中,您可以「重新安置」一個參考,因此它引用了一個不同的對象。
自從我使用Pascal以來,已經有一段時間了,但是如果使用內存服務,它只能使用參數傳遞參數(即var
參數通過引用傳遞)。我不認爲你可以創建一個參數而不是參數。
Ada允許您將參數標記爲in
,out
或inout
。如果我沒有記錯,一些inout
參數被複制到函數中,然後在最後被複制回調用者,但其他人則通過引用傳遞。正如我所說,我不記得細節。
看起來像Algol 68只有'ref'(更像是指針),但不是兩個。 – 2009-12-16 16:49:04
我接受Pascal,即使只限於參數傳遞,它也有指針和引用。不知道阿達。 – 2009-12-16 16:52:29
@dtrosset:你是對的,我的回答很糟糕 - 我沒有打算說Algol 68有兩個獨立的東西,但它有引用,可以做大多數類似指針的事情,所以它有點有兩個作爲一個單一的項目。 – 2009-12-16 18:46:59
C#有類似的東西,那裏面有unsafe
這個方法可以包含指針。雖然C#中的指針有點更有限。
谷歌的Go都有。切片是參考。我認爲它不像C++那樣具有通用性和清晰性,您可以在其中自己挑選指針和引用。
沒錯。但是如果我理解正確的話,人們只能對一個數組進行切片,而不能對其他類型進行切片。 – 2009-12-15 15:59:44
C++是唯一具有C++調用指針和引用的語言,是的。就像Java是唯一具有Java類的語言一樣,Python是唯一具有Python功能的語言。
很多語言有東西被稱爲引用,但他們很少是完全相同的東西。
C#有一些所謂的參考,不表現得像C++的參考,如果你使用不安全的代碼,它被稱爲指針的東西太(這又沒有定義完全像C++指針)
所以真的,這是一個毫無意義的問題。沒有其他語言具有C++的確切功能,沒有。但是很多語言都有類似的特性。
- 1. C語言指針
- 2. 帶指針和常規指針的二維數組? (C語言)
- 3. 指針calloc函數是否返回指針向量? (C語言)
- 4. c語言中普通指針和自指針指針的區別
- 5. c語言和一些指針的疑惑
- 6. C語言中的指針解釋
- 7. C語言中的Lazarus指針類型#
- 8. C++指針和引用
- 9. C語言中的通用指針和內存分配
- 10. 指針和指針引用
- 11. 如何以C語言返回指針
- 12. 重新初始化C語言指針
- 13. 指針函數c語言基礎
- 14. C語言指針(代碼解釋)
- 15. C語言指針:int ** Vs. int(* g)[]
- 16. 雙精度C語言編程指針
- 17. C語言程序設計,指針
- 18. 彙編語言的指針
- 19. C語言定義是指
- 20. 初學者:指針和常規語法在C語言編程
- 21. C++的指針失去指針引用
- 22. 不能在另一個函數中使用具有「指向指針」輸入的函數。在C語言
- 23. C語言中'函數指針'和'函數指針'之間的區別
- 24. C++引用/指針
- 25. 引用和指針用於多態嗎?
- 26. C++ - 數組是一個指針嗎?
- 27. C++算術具有指針
- 28. 混合語言編程,VB和C++,瞭解API和指針
- 29. C語言中這些volatile指針的含義是什麼?
- 30. C++引用和指針的關係
它的值得記住的僅僅是因爲語言有一些它調用引用或指針並不意味着它與C++引用或指針的100%等價。 c# – 2009-12-15 16:01:48
我實際上想知道是否有任何其他語言有指針,也有這種... ...種類...以及正在創造sooOOO許多困難,soooooo(太)很多程序員的解除引用指針。 – 2009-12-16 16:55:52