为什么要使用指针

时间:2017-06-01 04:11:21

标签: pointers programming-languages

我自己学习C ++。我是一名电子工程师,并在大约20年前就开始学习它,但在我的职业生涯中,我停止了编程,直到最近才重新开始编程。我应该补充一点,我从未在编程中学过任何课程。  我有一个关于指针的理论问题。在阅读有关指针的书籍时,似乎它们在C ++中扮演着重要的角色。我的问题是,我无法看到它是什么。我看到指针在数组中有作用,但我无法在其他任何方面看到它们的作用。   我可以看到他们做了什么,但我不明白为什么在我看到它们的情况下使用指针。引用或直接变量也可以正常工作。我有一种感觉,答案在于记忆领域(它的最佳用途),但我只是不知道。   任何答案将不胜感激。感谢。

3 个答案:

答案 0 :(得分:2)

cplusplus.com考虑​​以下内容:

  

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

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

当您考虑将值从函数传递给函数时,会出现另一个指针值。您可能会发现有关C ++中指针和引用之间差异的this thread以及如何/为何使用它们。

我们一直在进行几次关于CSEducators.SE site指针的教学对话。我也鼓励你阅读这些内容:

Simple Pointer Examples in C

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

答案 1 :(得分:1)

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

C ++ 引用可以完成的所有工作都是通过 C 中的指针完成的。

答案 2 :(得分:0)

我发现这个问题真的很棒,因为它很纯粹。

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

现在,指针的概念被发明用于打破这个安全沙箱,并为开发人员提供了自由思考和行动的自由。

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

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