C++ 指针学习笔记
什么是指针?
指针是C++语言中一种非常重要的数据类型,它是一种用来存储内存地址的变量。指针变量本身占用内存空间,但它所指向的内存单元才是真正存储数据的地方,因此指针变量可以用于访问和修改内存中的数据。
声明指针
在C++中声明指针变量需要使用一个 * 号,如下所示:
c++Copy Codeint *p;
其中,p是一个指向int类型变量的指针变量。
操作指针
指针变量可以通过以下操作获取、修改和释放指向的内存单元:
获取指针指向的内存地址
使用 & 运算符可以获取变量的内存地址,例如:
c++Copy Codeint a = 10;
int *p = &a;
这里,p指向了变量a的内存地址。
访问指针指向的内存单元
使用 * 运算符可以访问指针指向的内存单元,例如:
c++Copy Codeint a = 10;
int *p = &a;
int b = *p;
这里,b的值将为10,即它是从p所指向的内存单元中获取到的。
修改指针指向的内存单元
使用 * 运算符可以修改指针指向的内存单元,例如:
c++Copy Codeint a = 10;
int *p = &a;
*p = 20;
这里,a的值将被修改为20,即p所指向的内存单元的值被修改了。
释放指针所占用的内存空间
在使用完指针变量后,应该及时释放它所占用的内存空间,以便其他程序可以使用这些空间。使用 delete 运算符可以释放由 new 运算符分配的内存空间,例如:
c++Copy Codeint *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 Codea的值为:10
指针p所指向的值为:10
修改后,a的值为:20
在这个示例中,我们创建了一个整型变量a,并将指针p指向a的内存地址。我们使用 *p 访问了指针指向的内存单元,并将其值修改为20,最终输出了a的值。