当前位置:网站首页>复合类型--引用,指针
复合类型--引用,指针
2022-07-30 02:31:00 【不虚此行-Rui】
复合类型:
基于其他类型定义的类型(int * p int &d)
一条声明语句由一个基本数据类型(基型)和紧随其后的一个声明符列表组成.每个声明符命名了一个变量并指定该变量为与基本数据类型有关的某种类型.
引用:
为对象起另一个别名
#include <iostream>
using namespace std;
int main()
{
int val = 1024;
int &refval = val; //refval和val指向同一个地址 refval是val的另一个名字
cout << &val << " " << &refval << endl;
int &ival; //报错:引用必须初始化
cout << val << " " << refval << endl;
return 0;
}一般初始化,是将初始值拷贝到新建的对象中,而引用初始化 ,程序把引用和它的初始值绑定在一起,
不是拷贝,引用无法重新绑定到另一个对象,因而必须初始化
- 引用并非对象,只是为一个已经存在的对象所起的另一个别名
- 对引用操作就是对与引用绑定的对象操作
- 引用不是对象所以不能定义引用的引用(int&(&a))
int main()
{
int val = 1024;
int& refval = val;
refval = 2048;
cout << refval << " " << val << endl;
return 0;
}
自己下去练习,我就不说了.
指针
指针就是地址
声明符写成*d的形式
int* ip1, *ip2;//ip1和ip2都是指向int型对象的指针
double* dp, dp1;//dp是指向double型对象的指针,dp1是double型对像获取对象地址
指针存放某个对象的地址,需获取对象地址,需要取地址符&
int val = 42;
int* p = &val;//p存放val的地址,//p指向变量val的指针注意:引用不是对象不能取地址,但指针是对象存在指针引用
引用与指针的区别
- 引用必须初始化,指针不必须初始化 会获得一个随机值
- 引用无法重新绑定一个对象,而指针随时可以给定任何同类型的对象
- 引用不是对象所以不能定义引用的引用,而指针可以定义二级指针
- 引用的大小为引用类型的大小,而指针始终是地址空间所占字节数
边栏推荐
猜你喜欢
随机推荐
centOS安装MySQL详解
成功解决AttributeError: ‘PngImageFile‘ object has no attribute ‘imshow‘
JNPF3.4.2系统升级公告
基于燃压缩空气储能系统的零碳微能源互联网优化调度(Matlab代码实现)
解决:npm ERR code ELIFECYCLE npm ERR errno 1(安装脚手架过程中,在npm run dev 时发生错误)
MIT6.S081 小结
记一次搭建conda虚拟环境
EL 表达式
Linux Jenkins查找缓存文件及删除 (2022-07测试可用)
基于蒙特卡诺的风场景模型出力(Matlab代码实现)
Oracle超全SQL,细节狂魔
新手入门上位机开发 C#语言:PC串口发送数据
Dell's first pure soft product redefines next-generation object storage
Is it difficult for AI to land?Cloud native helps enterprises quickly apply machine learning MLOps
LeetCode Question of the Day (874. Walking Robot Simulation)
【ModelArts系列】华为ModelArts训练yolov3模型(训练管理)
黑客动态播报 | 一封假offer,盗取6.25亿美元
绘制概率密度图
JNPF3.4.2 system upgrade announcement
Unity Editor自定义一个记录Bug的窗口


![[Notes] Stuttering word segmentation to draw word cloud map](/img/a1/05504ad82d4670386d1cc233291c6a.png)






