2017-06-01 164 views
1

我正在学习C++。我是一个EE,在20年前就学会了它,但是在我职业生涯的进展中,我停止了编程,直到最近才停止编程。我应该补充说,我从来没有参加任何课程编程。 我有一个关于指针的理论问题。在阅读关于指针的书籍时,他们似乎在C++中扮演着重要的角色。我的问题是我看不到那是什么。我看到指针在数组中有一个角色,但我看不到他们在其他任何角色中的角色。 我可以看到他们做了什么,但我不明白为什么在我看到他们的情况下使用指针。引用或直接变量都可以正常工作。我有一种感觉,答案在于记忆(这是最佳使用),但我只是不知道。 任何答案将不胜感激。谢谢。为什么使用指针

+0

数组数组怎么样?和链表?和树?和图?和动态内存分配?同样在运行时你需要记住什么是调用者函数,这必须基于指针。 – reuns

+0

谢谢@ user1952009。其实这很有趣,但那正是我需要的。让我问你一个问题;你用的是指针吗?或者还有其他的东西,你总是使用指针。我希望那就是它。 –

+0

你需要了解的是,计算机使用指针来表示事物,就像'int a = 0; a = 1;'或'新字符串(“abcd”);'或'callThisFunction();'。当你在内存中修改/写入一个值时,你正在写一些指针给出的地址。指针在C/C++/Pascal/Fortran中是明确的。它们只是隐藏在其他语言中,但它们仍然存在, – reuns

回答

2

考虑从cplusplus.com以下:

“[T]这里可以是其中一个程序的存储器需求只能 运行期间确定的情况下例如,当所需要的内存取决于 的用户。在这些情况下,程序需要动态分配内存,为此,C++语言集成了运算符newdelete。“

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

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

我们一直有几个关于CSEducators.SE site指针的教学对话。我会鼓励你阅读这些还有:

Simple Pointer Examples in C

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

+0

您关于按引用传递的示例并不回答您为什么要使用指针传递引用而不是C++引用。 (我认为一般情况下你不应该通过指针,如果你可以帮助它!) – user1118321

+0

好点 - 感谢你带来了。我会适当地编辑。 – Peter

+0

彼得,谢谢。我认为答案是在内存使用领域。我会毫不迟疑地检查其他对话。 – 2017-06-01 06:56:08

1

指针来自Ç,其中有没有参考概念,并C++继承。可与参考C++进行

一切都与一个指针在Ç完成。

+0

我不确定这件事。那么,链接结构与动态变化的链接呢? – templatetypedef

0

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

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

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

将指针看作穷人的工具,以实现编程语言本身不提供的东西。

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

相关问题