gpt4 book ai didi

c++ - 指针的真正“意义”是什么?

转载 作者:太空狗 更新时间:2023-10-29 23:46:31 30 4
gpt4 key购买 nike

我用 Java 编写过很多程序,之前也涉足过 C++。我在各种 C++ 书籍中阅读了有关指针的内容,并完成了书籍中的各种示例。

我了解指针的基础知识,但有一件事我一直不清楚。指针在现实世界中的应用是什么?我的意思是,在什么情况下使用指针比仅通过引用传递更有益(如在 Java 中?)

最佳答案

I mean, in what situation would using pointers be more beneficial than just passing by reference (like in Java?)

Java 和许多其他语言中的引用基本上是指针之上的抽象。在 C(不是 C++)中,没有办法像在 C++ 中那样通过引用“通过引用传递”,因为这种抽象不存在,所以这永远不可能。 C++ 添加了引用作为新的抽象。

使用 C++,您可以通过引用传递,这通常是首选。然而,实际的动态内存分配在某种程度上仍将使用指针。

也就是说,您可以在 C++ 中使用指针执行一些操作,从而提高效率。了解内存以及存储在那里的内容可以让您直接操作该数据,而无需在某些语言中获得抽象的开销。这不是“安全的”(很容易做一些危险和坏事)——但它通常很有用。 (它非常有用,某些语言(如 C#)也允许您执行此操作,尽管它们需要您明确将该代码标记为“不安全”才能允许它。)

也就是说,指针通常在 C++ 中被抽象化。 Smart Pointers提供许多相同的好处,而没有使用“原始”指针的副作用和危险......

关于c++ - 指针的真正“意义”是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939503/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com