查看: 406|回复: 0

[C/C++] 关于C++指针的两种种使用方式

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7680
人气
176
分享
52

最佳新人活跃会员

发表于 2022-8-19 18:56:39 | 显示全部楼层 |阅读模式
首先定义一个变量a
[C++] 纯文本查看 复制代码
#include <iostream>

int main()
{
	int a;
	a = 1;
	a = 2; 
}//此处有断点

到这里,大家都知道了,最后a=2

但是,如果我们改变一下监视的变量的名称,吧它变成&a,这个数值就不一样了

我们看到,&a的值变成了一个16进制整数,这就是a的值在内存中的地址
我们发现,内存0x00000009a60ffbf4 的数值为"2"
这就是指针的第一种使用方式——与
在变量前加上&符号,可获得此变量的内存地址
接下来,我们写以下代码
[C++] 纯文本查看 复制代码
#include <iostream>

int main()
{
	int a;
	a = 1;
	a = 2;
	int p = &a;
}

不出一万的话,应该就出意外了

报错了,是一个类型转换的错误,要解决错误,需要改变代码
int * p = &a;
为什么一定要一个星号呢?
因为如果有程序员粗心,不小心把内存值赋值了,会引发bug
所以,就出现了一个硬性规定:如果一定要赋值内存地址,一定要加上*
运行一下,发现p的值是0x00000009a60ffbf4,和&a的值是一样的

这就是指针的第二种使用方式——赋值必须要加上*
总结:
C++指针的两种使用方法:
1.&变量名——变量的值的内存地址
2.int * 变量名 = &另一个变量名——将一个变量的值的内存地址赋值给另一个变量
写的不好,不喜勿喷awa


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 1经验 +20 人气 +1 收起 理由
YFSafe + 20 + 1 赞一个!

查看全部评分

小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表