指针是什么:指针是一个地址,比如00x0001
这样的地址。
什么情况下打印会出现地址:
- 在
int
float
double
等数据类型前加上取址符&
。 - 直接打印数组的数组名称
- 在自定义的结构体的变量前加上取址符
&
。
我们来试一下
#include <iostream>
using namespace std;
struct test
{
int a;
};
int main()
{
int a = 10;
int arr[] = { 1,2,3 };
struct test c;
c.a = 10;
cout << &a << endl;
cout << arr << endl;
cout << &c << endl;
system("pause");
return 0;
}
结果:(环境:Windows11 (arm/Apple M VM)/Visual Studio 2022/Debug/arm64)
00000003CC16F834
00000003CC16F840
00000003CC16F858
请按任意键继续. . .
如果我们想要获取从地址获取。
如何使用地址来获取数据:
int
float
double
等数据类型,解引用。- 数组直接用
- 结构体用
->
获取数据
#include <iostream>
using namespace std;
struct test
{
int a;
};
int main()
{
int a = 10;
int arr[] = { 1,2,3 };
struct test c;
c.a = 10;
int* p1 = &a;
int* p2 = arr;
struct test* p3 = &c;
cout << *p1 << endl;
cout << p2[1] << endl;
cout << p3->a << endl;
system("pause");
return 0;
}
结果:(环境:Windows11 (arm/Apple M VM)/Visual Studio 2022/Debug/arm64)
10
2
10
请按任意键继续. . .
:-)