C ++指针使用

时间:2017-03-07 12:25:37

标签: c++ pointers

由于我多年前使用的库,我开始处理指针。

我知道它做了什么,但我从来不知道为什么需要它,尽管由于某些功能,它在某个程序库中是一个先决条件。

基本上,它为您提供变量的地址,尽管您也可以使用它访问内容。 (https://www.tutorialspoint.com/cplusplus/cpp_pointers.htm

我试着搜索为什么我们确实需要它。

它在website上说C(我假设C中的指针与C ++中的指针相同)是在计算机速度不够快的时候创建的。

编辑:我认为它会被投票过于宽泛,希望我现在选择的那个不是。

访问地址本身对访问变量本身有何益处?

编辑:得到我需要的答案,随时关闭。

2 个答案:

答案 0 :(得分:4)

  

1)因此,如果计算机现在足够快,那为什么我仍然会看到一些人使用指针?速度差异真的那么大吗?

你误解了什么指针。指针不是一些仅用于提高性能的可选功能,它是C和C ++语言的基本组成部分,就像类型,变量,数组或函数一样。

在大多数情况下,指针类似于计算机地址。只要计算机有地址,就需要指针。

其他没有指针的语言只是将它们隐藏在抽象层之下。这就是为什么你甚至不能用这种高级语言编写与硬件相关的编程的原因。

  

2)它对速度有何帮助,我该如何使用?

对于Stack Overflow来说,这个问题太宽泛了。有很多完全不同的情况,指针可以用于各种优化。

  

3)这是一个好习惯吗?

取决于具体情况。您基本上都在询问使用螺丝刀是否合适,而没有指定您打算使用它。

答案 1 :(得分:0)

仍然需要指针。例如,当访问对象的成员(比如函数)时,有时您需要使用this关键字。 this表示指向调用该函数的对象的指针。 Google " c ++此关键字的一些用途" ,您将找到需要指针的原因。

一个更简单的例子:

#include <iostream>

int main(int argc, char *argv[])
{
    std::cout << "Program name: " << argv[0] << '\n';

    return 0;
}

命令行参数。如果没有指针,你甚至无法将参数传递给C ++程序(例如通过终端)。