您的位置:

C++指针:指向C++变量的内存地址

C++指针是一种非常重要的概念,它可以让我们更加灵活地控制程序的数据。C++指针是一个变量,它存储了另一个变量的内存地址。通过指针,在程序运行时可以直接访问内存地址中存储的数据,这是非常高效的一种方式。

一、指针变量是存放内存地址的变量

C++中的指针变量是一种特殊类型的变量,它可以存放另一个变量的内存地址,让我们可以通过这个指针间接地访问这个变量。

int var = 10;  // 创建一个整型变量
int* ptr;      // 创建一个指向整型变量的指针
ptr = &var;    // 将指针ptr指向变量var的地址

在上面的代码中,我们使用了指针变量ptr来存放变量var的地址。在这个指针赋值操作之后,ptr指向了var所在的内存地址。

二、指针当中存储的是变量的内存地址

在C++语言中,指针variable的值其实就是存储在变量var的内存地址。通过访问这个内存地址,程序可以访问到这个变量的值。

int var = 20;    // 创建一个整型变量
int* ptr = &var; // 创建一个指向整型变量var的指针

在上面的代码中,我们创建了一个指向整型变量var的指针ptr。将var的地址赋值给了这个指针ptr。现在指针ptr存储了var的地址,这样我们就可以通过指针ptr来访问var的值,代码如下:

cout << "var的值: " << var << endl;
cout << "ptr存储的地址: " << ptr << endl;
cout << "指针所指向的值: " << *ptr << endl;

上面的代码输出如下:

var的值: 20

ptr存储的地址: 0x7ffee02541ac

指针所指向的值: 20

三、两个指针指向同一个内存地址

C++语言中,指针可以指向同一个内存地址。这样的指针通常用于在函数之间传递参数,或者是在同一个程序的不同部分之间共享数据。

int var = 30;    // 创建一个整型变量
int* ptr1 = &var;// 创建一个指向整型变量var的指针1
int* ptr2 = &var;// 创建一个指向整型变量var的指针2

在上面的代码中,我们创建了两个指向整型变量var的指针ptr1和ptr2。它们都指向同一个内存地址,因此可以通过其中一个指针来访问这个变量。

cout << "var的值: " << var << endl;
cout << "ptr1存储的地址: " << ptr1 << endl;
cout << "ptr2存储的地址: " << ptr2 << endl;
cout << "ptr1所指向的值: " << *ptr1 << endl;
cout << "ptr1所指向的值: " << *ptr2 << endl;

上面的代码输出如下:

var的值: 30

ptr1存储的地址: 0x7ffee02541b4

ptr2存储的地址: 0x7ffee02541b4

ptr1所指向的值: 30

ptr2所指向的值: 30

四、C语言指针指向内存地址

C++语言中的指针概念最初是由C语言引入的。在C语言中,指针和C++中的指针非常相似,可以通过指针来直接访问和修改内存地址中存储的数据。

int var = 40;       // 创建一个整型变量
int* ptr = &var;    // 创建一个指向整型变量var的指针
*ptr = 50;          // 使用指针修改变量var的值
cout << "var的值: " << var << endl;

上面的代码中,我们使用指针ptr来修改变量var的值,将其改为50。之后我们输出了var的值,可以看到这个变量的值确实被修改了。

总之,C++中的指针概念在程序中的应用非常广泛。通过指针,我们可以灵活地管理程序的数据,让程序变得更加高效。