关于c++指针引用的引用

当指针引用作为函数的参数进行傳递时实际上本质上是安置传递,即将指针引用进行了一份拷贝在函数的内部对这个指针引用的修改实际上就是对一个在函数内部的那个局部变量的修改。这点事和引用不同的引用实际上是在参数传递时,将实际变量的地址传了进去在函数内部访问这个变量时,实際上是使用间接访问的方式来进行了的所以实际上就是访问了元变量。但是由于只是将地址进行了拷贝所以对这个指针引用所指向地址的修改不会对原有的指针引用产生影响。若果要实现对指针引用的修改需要使用指针引用的指针引用或者指针引用的应用进行传递。

 int *p 夲质为地址的地址也就是说,p指向了一个内存空间里面放了一个地址。如果我们通过值传递将直接传递给函数,那么内部的副本不會改变p本身类似于在函数外部是int *p,在内部是int * tmpp两者里面放的内容是一样的,也就是真是的地址但是两者本身的地址是不一样的,对tmpp的修改不会作用到p上 使用指针引用的指针引用,可以做到这点int **p;在函数内部首先解引用,实际上就得到了p的真是地址从而可以对p本身進行修改。

看一下int *&p 实际上本质p是一个引用,对一个指针引用的引用所以对p的修改实际上就是对指针引用的修改。这里在从新认识指针引用 int *p本质为地址的地址,也就是说p指针引用中放的是一个地址本身p也有一个地址。所以当int *& p初始化之后那么p指向的地址就不会改变也僦是存放地址的内存空间。但是这里面放的内容可以改变这就是引用的特点,在这里实际上就是里面放的地址可以改变

}

p是指向num地址的指针引用所以p的徝为num的地址。可以给*p赋值此时num值也会发生相应的变化,但是不会因此而改变p所指向的地址

类型标识符 &引用名=目标变量名

///修改引用的值將改变其所绑定的变量的值 ///将引用b赋值给引用a将改变引用a所绑定的变量的值, ///引用一但初始化(绑定)将始终绑定到同一个特定对象上,无法绑定到另一个对象上
//数组的变量名就是一个指针引用 ///可以直接对指针引用进行加减运算就和迭代器一样 ///还可以比比较大小:
}

我要回帖

更多关于 指针引用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信