指针有什么意义?

Bab*_*ker 13 c++ pointers

当我可以声明变量时,C++中的指针有什么意义?什么时候适合使用它们?

Mat*_*att 30

C&C++在变量传递函数方面的差异可以最好地理解指针.

是的,您可以传递整个变量或仅传递指针(行话分别是值或引用).

但是如果变量是20兆字节的字节,比如你决定将整个文件读入一个数组呢?通过它传递它将是愚蠢的:为什么你会复制20兆的这个操作,如果你最终修改它(即它是一个超出参数)你必须复制那20兆的BACK?

更好的是只是"指向"它.你说,"这是指向一大块记忆的指针".而那个小小的间接节省了大量的时间.

一旦你理解了,其他一切基本相同.重新排列列表中的项目只是交换指针而不是复制每个项目,你不需要知道当你开始时有多大的东西,等等

  • 你的评论是有道理的(类似于我的回答),但我会对术语挑剔."这是对大量内存的引用",应该是"这是一个指向大块内存的指针".引用在C++中有意义,它们与指针不同(尽管非常相似和相关,它们是不同的). (6认同)

Lan*_*son 16

在处理编译时未知大小和形状的数据结构时,指针最有用(思考列表,树,图,数组,字符串......).

编辑

这些相关的答案也可能有所帮助(第二个链接中的最佳答案绝对值得一看):

在C++中,我无法掌握指针和类

理解指针有什么障碍,克服它们可以做些什么?