千家信息网

C++中指针引用的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍C++中指针引用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!指针和引用形式上很好区别,但是他们似乎有相同的功能,都能够直接引用对象,对其进行直接的操
千家信息网最后更新 2026年11月01日C++中指针引用的示例分析

这篇文章主要介绍C++中指针引用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

指针和引用形式上很好区别,但是他们似乎有相同的功能,都能够直接引用对象,对其进行直接的操作。

首先,引用不可以为空,但指针可以为空。前面也说过了引用是对象的别名,引用为空--对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化。因此如果你有一个变量是用于指向另一个对象,但是它可能为空,这时你应该使用指针;如果变量总是指向一个对象,i.e.,你的设计不允许变量为空,这时你应该使用引用。

如指针一样,指针的引用容易使人困惑。

我们注意到类似下面这种语法

void func(int *&x){        ++x;}

我猜你可能对int *&x有点疑惑。

这叫做指针的引用。

int *&x

不要觉得看着复杂,其实一点也不复杂。

我帮你拆开来看:

按照C++程序员的习惯,指针"*"号是和类型放在一起的。
C++中&是引用符号。
我们需要注意的是"引用"不产生副本,而是给原变量起别名。
对引用操作就是对原变量操作。

所以只需要这样:

int* &x

一目了然!

对指针变量本身的修改无法作用到原指针变量,

所以需要通过引用来实现修改指针变量。

我用两张图来告诉你指针的引用为什么有用:


什么叫局部修改?

举个栗子

我用代码来给你解释解释什么叫局部修改:

#include void swap(int* p1,int* p2) {    int* temp=p1;    p1=p2;    p2=temp;    printf("交换中:a=%d,b=%d \n",*p1,*p2);    printf("交换中(地址):p1=%d \n",p1);    printf("交换中(地址):p2=%d \n",p2);}int main() {    int a=1,b=3;    int *p1=&a,*p2=&b;    // 交换前    printf("交换前:a=%d,b=%d \n",*p1,*p2);    printf("交换前(地址):p1=%d \n",p1);    printf("交换前(地址):p2=%d \n",p2);    // 交换中    swap(p1,p2);    // 交换后    printf("交换后:a=%d,b=%d \n",*p1,*p2);    printf("交换后(地址):p1=%d \n",p1);    printf("交换后(地址):p2=%d \n",p2);    return 0;}

猜一猜结果。

输出的结果:

交换前:a=1,b=3
交换前(地址):p1=6422028
交换前(地址):p2=6422024
交换交换中:a=3,b=1
交换中(地址):p1=6422024
交换中(地址):p2=6422028
交换后:a=1,b=3
交换后(地址):p1=6422028
交换后(地址):p2=6422024

运行截图

在执行swap()函数的时候就是执行中。

可以发现在执行swap()函数的时候确实修改了地址,也交换了a、b的值。

但是,当我们在main()函数中输出a、b的时候,完全没有交换。

什么叫全局修改?

同样的代码,我只改一个地方。


来看看会发生什么改变。

运行截图

交换前:a=1,b=3
交换前(地址):p1=6422044
交换前(地址):p2=6422040
交换中:a=3,b=1
交换中(地址):p1=6422040
交换中(地址):p2=6422044
交换后:a=3,b=1
交换后(地址):p1=6422040
交换后(地址):p2=6422044

我就简简单单添加了"&",竟然如此神奇!

所以我们可以发现:

指针的引用能够全局修改指针变量!

引用是C++中很强大的语法,在编程中极其实用。

明白这个语法很关键,因为这个在树和图的算法中应用广泛。

以上是"C++中指针引用的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

地址 指针 变量 C++ 对象 时候 函数 别名 语法 示例 分析 复杂 代码 全局 内容 就是 局部 截图 指向 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 保险科技 互联网保险 中国互联网科技工作委员会毛军 工业互联网科技新基建 互联网科技卖菜 互联网最新的科技有限公司 北京互联网科技有限公司 深圳互联网络科技有限公司 华服互联网科技官网 互联网还是高科技吗 昭通互联网科技选哪家 晋城互联网科技 威龙国际互联网科技公司 明优互联网科技有限公司 互联网科技公司营业执照怎么办理 烟台灵鸽互联网科技有限公司 互联网领先科技成果宣传视频 互联网的黑科技实验室 科技发展第三阶段互联网时代 小牛互联网科技有限公司地址 互联网科技海报 互联网科技与金融科技 电子科技大学互联网 上海致骋互联网科技 科技伦理 互联网公司 受益于互联网科技的高速发展 想开互联网科技公司怎么样 南博望互联网科技有限公司 元气玛特互联网科技公司是外包吗 中国新注册互联网科技
0