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++中的指针概念在程序中的应用非常广泛。通过指针,我们可以灵活地管理程序的数据,让程序变得更加高效。