我自己学习C ++。我是一名电子工程师,并在大约20年前就开始学习它,但在我的职业生涯中,我停止了编程,直到最近才重新开始编程。我应该补充一点,我从未在编程中学过任何课程。 我有一个关于指针的理论问题。在阅读有关指针的书籍时,似乎它们在C ++中扮演着重要的角色。我的问题是,我无法看到它是什么。我看到指针在数组中有作用,但我无法在其他任何方面看到它们的作用。 我可以看到他们做了什么,但我不明白为什么在我看到它们的情况下使用指针。引用或直接变量也可以正常工作。我有一种感觉,答案在于记忆领域(它的最佳用途),但我只是不知道。 任何答案将不胜感激。感谢。
答案 0 :(得分:2)
从cplusplus.com考虑以下内容:
" [T]这里可能是程序的内存需求只能是的情况 在运行时确定。例如,当需要的内存取决于 在用户输入上。在这些情况下,程序需要动态分配 内存,C ++语言集成了运算符
new
和delete
"
如果您可以在运行时确定所有内存需求,并且不需要使用任何抽象数据类型(如链表),那么是的,很难看到它们的使用。但是,如果您想将值存储在数组中,但您还不知道该数组需要多大,该怎么办?
当您考虑将值从函数传递给函数时,会出现另一个指针值。您可能会发现有关C ++中指针和引用之间差异的this thread以及如何/为何使用它们。
我们一直在进行几次关于CSEducators.SE site指针的教学对话。我也鼓励你阅读这些内容:
答案 1 :(得分:1)
指针来自 C ,它没有引用的概念,而 C ++ 继承自 C 。
C ++ 中引用可以完成的所有工作都是通过 C 中的指针完成的。
答案 2 :(得分:0)
我发现这个问题真的很棒,因为它很纯粹。
编程语言被认为是“安全的”,当它编写的程序只能调用函数和访问程序可以命名的数据时。
现在,指针的概念被发明用于打破这个安全沙箱,并为开发人员提供了自由思考和行动的自由。
将指针视为穷人的工具,以实现编程语言本身无法提供的功能。
如果使用指针编程某些算法,则认为可以获得更高的性能是误导性的。优化是编译器和硬件的特权,而不是人类。