美文网首页C/C++知识点程序员
如何理解指向指针的指针?

如何理解指向指针的指针?

作者: Python编程导师 | 来源:发表于2018-12-26 15:55 被阅读17次

问题:如何理解指向指针的指针?

我在一篇教程中看到下面这段,它描述指向指针的指针是如何运作的。

引用文章相关段落如下:

int i = 5, j = 6, k = 7;

int *ip1 = &i, *ip2 = &j;

现在我们可以这么写:

int **ipp = &ip1;

那么现在指针 ipp 指向了 ip1,ip1 指向了 i。*ipp 就是 ip1,**ipp 就是 i,或者说是 5。我们可以用我们熟悉的盒子箭头图来描述,像这样:

有兴趣学习交流c/c++的小伙伴可以进我的主页看看哦~

如果我们接着这么写:

*ipp = ip2;

我们就改变了 ipp 指向的那个指针(也就是 ip1),现在它指向 ip2 所指的地方。也就是说(ip1)现在它指向了 j:

有兴趣学习交流c/c++的小伙伴可以进我的主页看看哦~

我的疑问是:为什么在第二幅图里,ipp 还是指向 ip1 而不是 ip2?

最佳答案:

让我们暂时忘掉那些关于指针的各种类比。指针实际上存放的是内存的地址。

& 符号的意思是取地址,也就是返回一个对象在内存中的地址。

* 符号的意思是取得一个指针所指向的对象。 也就是如果一个指针保存着一个内存地址,那么它就返回在那个地址的对象。

所以当你这么写时 *ipp = ip2,实际上是把 ipp 存的地址所对应的对象,也就是 ip1 取到,然后把 ip2 存的值赋值给 ip1,也就是 j 的地址。

简单点就是:

&:取址。

* :取值。

相关文章

  • 如何理解指向指针的指针?

    问题:如何理解指向指针的指针? 我在一篇教程中看到下面这段,它描述指向指针的指针是如何运作的。 引用文章相关段落如...

  • C语言编程笔记丨如何理解指向指针的指针?

    问题:如何理解指向指针的指针? 我在一篇教程中看到下面这段,它描述指向指针的指针是如何运作的。 引用文章相关段落如...

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • 指针

    一. 指针指向的是对象的地址//函数指针:指针指向函数//指针函数:函数返回指针 二.

  • 指针运算

    指针的类型与指针指向的类型明显不相等 指针的类型表示指针自身的类型; 指针指向类型表示指针指向数据(内存)的类型。...

  • 数据结构_知识点_线索树

    1. 线索树填充空指针域规则 (1)若左指针域为空,左指针指向前驱(2)若右指针域为空,右指针指向后继 2. 如何...

  • C语言(五)指针

    一、指针的概念 二、*号的含义 三、指针指向数组 四、指针指向的指针 一、指针的概念:pointer,指向一块地方...

  • 指向指针的指针

    别犹豫,别因指向指针的指针把自己绕晕了,指针首先是一个地址变量。作为变量,它有变量名(指针名),分配的内存空间(指...

  • 指向指针的指针

    1. 传参是一个指针 输出:22 当我们把一个指针作为参数传给一个方法时,其实是把指针的副本传给了方法,也就是指针...

  • 2.7-C语言入门-指针

    1.指针的含义-变量的地址 a.指针:C语言中用“指针”来表示内存地址(即:指针指向了内存地址),即“指针”可理解...

网友评论

    本文标题:如何理解指向指针的指针?

    本文链接:https://www.haomeiwen.com/subject/dpwhlqtx.html