首页 > 技术文章 > C/C++:提升_指针的指针和指针的引用

chenliyang 2017-03-15 14:02 原文

写在前面

  今天在使用指针的时候我发现了一个自己的错误。

  

  我刚开自以为是觉得输出的两个P都是6,当时觉得两个p所指的地址相同,要修改就都修改了。

  这是一个很低级的错误,两个p所指的地址相同,但是这两个指针的地址是不一样的。

好比两个人都知道火车站怎么走,但不能说这两个人是一个人,更何况在修改中一个人已经忘了火车站,它只知道高铁站怎么走,那另一个只知道火车站的并没有受到影响,他还是只知道火车站。

好了,那么如何做到main修改里面的p呢?要用到两种技术:

  • 指针的指针
  • 指针的引用

 指针的指针

  

简单说明:

  指针的指针技术中,我们要修改一个指针所指的内容,就要将这个指针本身的地址作为参数传递给方法。

  比如我们要到火车站,只有一个人知道火车站的位置,我们要想找到火车站,就要根据一个地址先找到这个人,再根据这个人找到火车站。

  表示下来就是**p=&(&(p)),&p所指的就是火车站。&(&(p))就是知道火车站的人的地址。

  我们要修改p,就要先找到它,找到后修改火车站的地址,那个人就知道新的火车站地址了。

指针的引用

  

简单说明:

  指针的引用,在这里两个指针本质上是一模一样的,change里面的P就是main里面的P。所以直接修改就好。

  个人理解,引用就是指针的一种变体,就是&也可以理解为*.

推荐阅读