首先定义一个变量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
|