我很难理解指针,尤其是函数指针,我希望有人能告诉我它们到底是什么以及它们应该如何在程序中使用。特别感谢 C++ 中的代码块。
谢谢。
最佳答案
indirection的概念理解这一点很重要。
这里我们通过 increment(x)
传递值(注意创建和操作的是本地拷贝,而不是原始版本):
在这里,通过increment(&x)
指针(内存地址):
请注意,引用与指针的工作方式类似,除了语法类似于值拷贝 (obj.member
) 并且指针可以指向 0
(“空”指针) 而引用必须指向非零内存地址。
另一方面,函数指针让您可以像传递变量一样方便地传递和处理函数,从而在运行时动态更改代码的行为。 Functors通常是首选(尤其是 STL ),因为它们的语法更清晰,并且它们允许您将本地状态与函数实例相关联(阅读有关 callbacks 和 closures 的内容,它们都是有用的计算机科学概念)。对于简单的函数指针/回调,lambdas由于其紧凑和就地语法,经常使用(C++11 中的新功能)。
关于c++ - 直观地解释指针及其意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895766/