【2】指针和应用

本人在此记录的为本人学习历程,并不是想为大家展示什么,请不要高估我,谢谢~

视频内容源自于B站上一位名叫 @佐夫 搬运的YouTube上 @TheCherno 的视频。

看着视频学习了指针(pointers)和引用(references),Cherno说指针也是一个变量,通过学习,我将变量描述为,有内存地址的一串字符,我用指针对变量进行操作,发现指针也有内存地址。

	char* buffer = new char[4];  //Cherno这样写的,将char大小重新定义,我也不知道为什么。
	memset(buffer, 10, 4);
	char** b = &buffer; 
	char* a = buffer;
	char** c = &a;
	char*** d = &b;

这是监视器内容  a,c同理。

buffer	0x00b8d340
b	0x006cfe38 {0x00b8d340}	char **
&b	0x006cfe2c {0x006cfe38 {0x00b8d340}}	char ***
d	0x006cfe2c {0x006cfe38 {0x00b8d340}}	char ***
&d	0x006cfe08 {0x006cfe2c {0x006cfe38 {0x00b8d340}}}	char ****

而引用,我觉得引用的作用就是给变量起小名。

	int f = 20;
	int& ref = f;

f	21	int
&f	0x003bf900 {21}	int*
ref	21	int&
&ref	0x003bf900 {21}	int*

可以发现,ref与f的地址相同,通过对ref的操作可以影响到f的返回值,这可真有意思!

我们还可以发现,带有内存地址的东西,本质上是指针,所以我们可以:

	int f = 20;
	int& ref = f;
	int* pf = &f;
	int** dpf = &pf;
	int*** tpf = &dpf;
	int* pref = &ref;
	int** dpref = &pref;
	int*** tpref = &dpref;

f	20	int
ref	20	int &
pref	0x00cff81c {20}	int *
dpref	0x00cff7e0 {0x00cff81c {20}}	int * *
tpref	0x00cff7d4 {0x00cff7e0 {0x00cff81c {20}}}	int * * *

C++实在是太好玩儿了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值