C++指针,指针的引用,指针的赋值,指针传递与指针的引用传递

「爱情、让人受尽委屈。」 2021-11-10 13:26 503阅读 0赞

指针有时候真的不是很好懂下面下面我将利用调试的方式讲解一下指针到底是个什么东西
这里我使用了链表结构体


" class="reference-link">指针传递传递在这里插入图片描述

这张图片我们可以看出head指针的地址与head指针所指向的内容的地址也就是值的地址如下图:
在这里插入图片描述
继续Debug
在这里插入图片描述
显而易见p指针所在的地址与head不同
说明了什么?
说明了当指针作为函数参数传递指针其实就是值传递(也就是把head拷贝一份)如下图:
在这里插入图片描述
说到这里就还要再说一下因为函数局部变量P拿到了LNode的地址所以他完全可以操作这个变量 也可以free掉他如下图
在这里插入图片描述
这里要注意free函数使free掉指针指向内容而不是指针
不难发现LNode已经被free掉了
在这里插入图片描述

指针的引用:

指针的引用其实就是当前指针变量的别名,其实操作的还是这个指针变量 话不多说上图
在这里插入图片描述
可以看见他俩其实就是一个东西反应到内存图上就应该是(我自己YY的)
在这里插入图片描述
总结: 指针变量之间的赋值其实就是拷贝,但是要注意拷贝是指拷贝的指针,而指针的内容是完全相同的可以看第四个图

发表评论

表情:
评论列表 (有 0 条评论,503人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++中引用传递指针传递区别

    *C++中引用传递与指针传递区别** 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的...

    相关 传递引用传递指针传递

    一、值传递 1、特点: (1)形参是实参的拷贝,改变形参的值并不会影响外部实参的值。 (2)从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能