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

技术C++中指针引用的示例分析这篇文章主要介绍C++中指针引用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!指针和引用形式上很好区别,但是他们似乎有相同的功能,都能够直接引用对象,对其进

本文主要介绍C语言中指针引用的实例分析,非常详细,具有一定的参考价值。感兴趣的朋友一定要看完!

指针和引用在形式上有很大的不同,但它们似乎都有相同的功能,它们可以直接引用对象并直接操作它们。

首先,引用不能为空,但是指针可以为空。如前所述,引用是对象的别名。如果引用为空,则——对象不存在。怎么会有化名?因此,在定义引用时,必须对其进行初始化。所以如果你有一个指向另一个对象的变量,但是它可能是空的,那么你应该使用一个指针;如果变量总是指向一个对象,即您的设计不允许变量为空,那么您应该使用引用。

像指针一样,指针的引用令人困惑。

我们注意到如下语法

voidfunc(int*x)

{

x;

}我猜你可能对int *x x有点困惑。

它叫指针的引用.

Int*x不要觉得看起来复杂,其实一点都不复杂。

让我打开让你看看:

根据C程序员的习惯,指针“*”符号与类型放在一起。

c是一个参考符号。

我们应该注意到“引用”并不产生副本,而是给原始变量一个别名。

对引用的操作是对原始变量的操作。

所以就这样:

Int*x一目了然!

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

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

我将使用两个图表来告诉您指针引用为什么有用:

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

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

00-1010拿个栗子。

我将使用代码向您解释什么是本地修改:

# includestdio.h

voidswap(int*p1,int * p2){ 0

int * temp=p1

p1=p2

p2=温度;

Printf('交换条件:a=%d,b=%d\n ',*p1,* p2);

Printf ('in exchange(地址):p1=%d\n ',P1);

Printf('交换(地址):p2=%d\n ',p2);

}

int main(){ 0

inta=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);

//作为交换

交换(p1,p2);

//交换之后

Printf('交换后:a=%d,b=%d\n ',*p1,* p2);

Printf('交换后(地址):p1=%d\n ',P1);

Printf('交换后(地址):p2=%d\n ',p2);

返回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

运行截图

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

执行swap()函数时,它正在执行。

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

可以发现,在执行swap()函数时,确实修改了地址,交换了A和B的值。

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

然而,当我们在main()函数中输出A和B时,根本没有交换。

什么叫局部修改?

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

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

让我们看看会发生什么。

运行截图

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

之前: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语言指针引用实例分析》一文的全部内容,感谢阅读!希望分享的内容对大家有所帮助。更多相关知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/82730.html

(0)

相关推荐

  • node服务器因请求错误报错断开(node假死怎么知道运行到哪了)

    技术检查监听报错:WARNING:Subscription for node down event still pending该如何解决报错:WARNING:Subscription for node down even

    攻略 2021年12月14日
  • 如何分析采样原理的另类解读

    技术如何分析采样原理的另类解读如何分析采样原理的另类解读,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们知道单片机是数字芯片,只认识由0和1组成的逻辑序列

    攻略 2021年12月3日
  • html和css基础知识有哪些

    技术html和css基础知识有哪些本篇内容主要讲解“html和css基础知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html和css基础知识有哪些”吧!Html是

    攻略 2021年12月10日
  • 解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题

    技术解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题 解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题前言
    之前在 使用Python定时清理运行超时的pdflatex僵尸进程

    礼包 2021年12月2日
  • 早餐有哪些,早餐应该吃什么东西比较好

    技术早餐有哪些,早餐应该吃什么东西比较好都说一年之计在于春早餐有哪些,一日之计在于晨,大家都知道早晨是充满活力的时候!一顿营养丰富的早餐也是非常重要的,尤其是对男性朋友!你们知道男性早餐吃什么最有营养吗,适合男人的早餐食

    生活 2021年10月27日
  • Hadoop命令的使用分析

    技术Hadoop命令的使用分析这篇文章给大家介绍Hadoop命令的使用分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Hadoop命令所有的hadoop命令均由bin/hadoop脚本引发。不指定

    攻略 2021年11月12日