C++中对C的扩展学习新增语法——引用
2024-09-01 17:02:51
引用
引用的好处:
1、引用的好处 C++使用结构体,不需要再使用 typedef。
2、值传递是将实参进行拷贝,赋值给形参,如果对象比较大,每次拷贝效率比较低,并且函数内部无法修改外部变量的值,能力较弱。若使用地址传递无论数据大小,每次只需要传递指针大小的数据,传递效率较高,函数具有修改外部变量的能力(const 指针)。而引用即可以有值传递简洁的语法,又可以兼顾指针传递的效率。
3、如果要使用常量引用,编译器会给常量分配内存,并且让新创建的对象引用该内存。
4、引用的机制:
引用是通过指针来实现的,引用一旦定义就不能修改,引用的本质还是取地址,解引用,C语言中我们需要自己做,C++中引用语法是编译器帮我们做。
5、引用的问题:引用究竟占不占用内存?
程序员的角度:引用只是一个别名,不占用内存。
编译器的角度:内部实现是一个指针,所以要占内存。
6、函数的返回值类型可以是引用,地址,值。
代码实现:
引用的语法:
基本类型及结构体引用:
对数组引用:
对指针的引用:
引用作为返回值类型:
注意事项:
1.&在此不是求地址运算,而是起标识作用。
2.类型标识符是指目标变量的类型
3.必须在声明引用变量时进行初始化,初始化之后不能改变。
4.不能有 NULL 引用。必须确保引用是和一块合法的存储单元关联。
最新文章
- 比achartengine更加强大的Android图表控件。
- java中 用telnet 判断服务器远程端口是否开启
- Android开发2:事件处理及实现简单的对话框(Toast,AlertDialog,Snackbar,TextInputLayout的使用)
- android tools使用方式
- luogu1207双重回文数[usaco1.2]Dual Palindromes
- python模块介绍二。
- net-snmp-5.7.3配置编译安装
- Android项目框架升级尝鲜OkHttp
- Oracle 表死锁 解决
- Android studio听云接入另外一种方式
- 采访 Lua 发明人的一篇文章
- linux 基本使用命令
- 获取OlapConnection连接
- RoIPooling
- 残差网络ResNet笔记
- Rabbit原理理解
- 剑指offer——python【第16题】合并两个有序链表
- C# 图片 旋转和翻转 RotateFlip
- java类与继承(转载)
- SimpleDraweeView 设置圆角不生效问题