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)

相关推荐

  • 怎么处理HDFS问题

    技术怎么处理HDFS问题这篇文章主要介绍“怎么处理HDFS问题”,在日常操作中,相信很多人在怎么处理HDFS问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么处理HDFS问题”的疑惑有

    攻略 2021年10月28日
  • windows中信号量和互斥量的区别是什么

    技术windows中信号量和互斥量的区别是什么本篇内容介绍了“windows中信号量和互斥量的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希

    2021年11月9日
  • 数据分析

    技术数据分析 数据分析数据预处理
    在本次数据分析过程中,缺失数据将被进一步划分成为三个部分,一类数据是数据为0的情况,一类是数据为空值的情况,一类是数据为特殊符号,例如“–”的数据。
    针对不同的数据缺

    礼包 2021年11月18日
  • SQL中索引怎么用

    技术SQL中索引怎么用小编给大家分享一下SQL中索引怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、概念 是数据库对象,通过指针

    攻略 2021年12月13日
  • Modern Batch和计算密集型的编程模型是如何批量处理

    技术Modern Batch和计算密集型的编程模型是如何批量处理本篇内容主要讲解“Modern Batch和计算密集型的编程模型是如何批量处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编

    攻略 2021年11月2日
  • python怎么制作自己的一个图形(python图形绘制的代码)

    技术Python 图形绘制详细代码怎么写这篇文章给大家介绍Python 图形绘制详细代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、条形图下面介绍条形图的画法。1.1 代码import

    攻略 2021年12月23日