为什么要使用指针

问题描述 投票:0回答:3

我正在自学C++。我是一名 EE,大约 20 年前就学会了编程,但在我职业生涯的发展过程中,我停止了编程,直到最近才重新开始编程。我应该补充一点,我从未参加过任何编程课程。 我有一个关于指针的理论问题。在阅读有关指针的书籍时,我们发现它们在 C++ 中扮演着重要的角色。我的问题是我看不到那是什么。我看到指针在数组中发挥作用,但我看不到它们在其他任何东西中的作用。 我可以看到它们的作用,但我不明白为什么在我看到它们的情况下使用指针。引用或直接变量都可以工作。我有一种感觉答案在于内存区域(这是最佳使用),但我只是不知道。 任何答案将不胜感激。谢谢。

pointers programming-languages
3个回答
2
投票

考虑来自 cplusplus.com 的以下内容:

“[T]在某些情况下,程序的内存需求只能是 在运行时确定。例如,当所需的内存取决于 根据用户输入。在这些情况下,程序需要动态分配 内存,C++ 语言集成了运算符

new
delete
。”

如果您可以在运行时之前确定所有内存需求,并且不需要使用任何抽象数据类型(例如链接列表),那么是的,很难看到它们的用途。但是,如果您想在数组中存储值,但您还不知道该数组需要多大,该怎么办?

当您考虑在函数之间传递值时,就会出现指针的另一个值。您可能会发现关于 C++ 中指针和引用之间的差异以及如何/为何使用它们的此线程的价值。

我们已经就CSEducators.SE 网站上的指示进行了多次教学对话。我鼓励您也阅读这些内容:

C 语言中的简单指针示例

课程理念:数组、指针和语法糖


1
投票

指针来自C,它没有引用的概念,而C++继承自它。

C++ 中可以使用 reference 完成的所有操作都可以通过 C 中的指针完成。


0
投票

我觉得这个问题非常好,因为它很纯粹。

当用某种编程语言编写的程序只能调用该程序可以命名的函数和访问数据时,该语言被认为是“安全的”。

现在,指针的概念被发明出来,打破这个安全沙箱,为开发者提供跳出框框思考和行动的自由。

将指针视为穷人的工具,用于实现编程语言本身未提供的功能。

认为如果使用指针编写某些算法就可以获得更高的性能,这是一种误导。优化是编译器和硬件的特权,而不是人的特权。

© www.soinside.com 2019 - 2024. All rights reserved.