C++ 指针学习笔记

什么是指针?

指针是C++语言中一种非常重要的数据类型,它是一种用来存储内存地址的变量。指针变量本身占用内存空间,但它所指向的内存单元才是真正存储数据的地方,因此指针变量可以用于访问和修改内存中的数据。

声明指针

在C++中声明指针变量需要使用一个 * 号,如下所示:

c++Copy Code
int *p;

其中,p是一个指向int类型变量的指针变量。

操作指针

指针变量可以通过以下操作获取、修改和释放指向的内存单元:

获取指针指向的内存地址

使用 & 运算符可以获取变量的内存地址,例如:

c++Copy Code
int a = 10; int *p = &a;

这里,p指向了变量a的内存地址。

访问指针指向的内存单元

使用 * 运算符可以访问指针指向的内存单元,例如:

c++Copy Code
int a = 10; int *p = &a; int b = *p;

这里,b的值将为10,即它是从p所指向的内存单元中获取到的。

修改指针指向的内存单元

使用 * 运算符可以修改指针指向的内存单元,例如:

c++Copy Code
int a = 10; int *p = &a; *p = 20;

这里,a的值将被修改为20,即p所指向的内存单元的值被修改了。

释放指针所占用的内存空间

在使用完指针变量后,应该及时释放它所占用的内存空间,以便其他程序可以使用这些空间。使用 delete 运算符可以释放由 new 运算符分配的内存空间,例如:

c++Copy Code
int *p = new int; delete p;

指针实例

下面是一个使用指针的简单示例程序:

c++Copy Code
#include <iostream> using namespace std; int main() { int a = 10; int *p = &a; cout << "a的值为:" << a << endl; cout << "指针p所指向的值为:" << *p << endl; *p = 20; cout << "修改后,a的值为:" << a << endl; return 0; }

运行结果如下:

Copy Code
a的值为:10 指针p所指向的值为:10 修改后,a的值为:20

在这个示例中,我们创建了一个整型变量a,并将指针p指向a的内存地址。我们使用 *p 访问了指针指向的内存单元,并将其值修改为20,最终输出了a的值。