C/C++知识点之指针和引用(传指针和传引用)
小标 2018-08-10 来源 : 阅读 1356 评论 0

摘要:本文主要向大家介绍了C/C++知识点之指针和引用(传指针和传引用),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之指针和引用(传指针和传引用),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

目录

前言

指针本质上就是一个存放变量地址的变量,逻辑上是独立的,它可以被改变,包括指向地址的改变和地址所存放数据的改变。

引用本质上是一个别名,逻辑上具有依附性,只在定义时初始化一次,是不可变的(从始至终只能依附在一个变量)。

联系

都是地址的概念,指针表示指向一块内存,内容是所指内存的地址,而引用是某块内存的别名
区别

指针是实体,引用是别名;

指针可以为空,引用不可以;

指针需要解引用,引用不需要;

指针可以改变,引用只在定义时初始化一次,之后就不可变;

sizeof()指针的大小是指针类型的大小,sizeof()引用的大小是对象本身的大小;

指针的++和--是表示指针的偏移,而引用的++和--表示对象的自增自减;

指针可以被const修饰,引用不可以。
指针不是类型安全的,引用是类型安全的(引用比指针多了类型检查)。

C++中指针传递和引用传递

指针传递参数本质上是值传递,他传递的是一个地址值,在函数调用过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟内存空间来储存主调函数调用放进来的实参的值(临时变量,实参的一份拷贝),被调函数对于形式参数的任何修改都只发生在被调函数体内,被调函数结束,实参的拷贝也就被释放,不会改变实参本身。(实参本身的地址不会变)

引用传递参数在函数调用过程中,被调函数的参数虽然也作为局部变量在栈中开辟内存空间存放,但是存放的是由主调函数存放进来实参的地址,被调函数对形参的任何操作都被处理成通过间接寻址找到实参,对实参进行操作,所以被调函数对形参的任何修改都会影响到实参。

从编译角度来看,程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名和变量所对应的地址,指针在符号表上对应的是指针变量的地址值,引用在符号表上对应的是引用对象的地址值,符号表一旦生成就不可以修改,而指针可以改变它指向的对象(指针变量中的数据是可以修改的),引用对象却是没法修改的。    

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved