C++中的指针变量如何使用?
·
指针变量的基本概念
指针是C++中存储内存地址的变量,通过指针可以直接访问或操作内存中的数据。指针的类型决定了它所指向内存中数据的解释方式。
声明与初始化指针
指针的声明需指定指向的数据类型,并用*符号标识。初始化时可直接赋值为某变量的地址或nullptr(空指针)。
int num = 10;
int *ptr = # // 指向num的地址
int *nullPtr = nullptr; // 空指针
指针的解引用
通过*操作符可以访问指针指向的内存数据,修改指针指向的值会影响原变量。
int value = *ptr; // 获取ptr指向的值(10)
*ptr = 20; // 修改num的值为20
指针的算术运算
指针支持加减运算,移动的距离由数据类型大小决定。常用于数组遍历。
int arr[3] = {1, 2, 3};
int *arrPtr = arr;
cout << *(arrPtr + 1); // 输出第二个元素(2)
指针与动态内存分配
使用new和delete操作符动态分配和释放内存,避免内存泄漏。
int *dynamicPtr = new int(5); // 动态分配内存并初始化为5
delete dynamicPtr; // 释放内存
指针与数组
数组名本质是首元素的指针,但数组名不可重新赋值(如arr = new int[3]非法)。
char str[] = "Hello";
char *strPtr = str; // 指向数组首地址
cout << strPtr[1]; // 输出 'e'
指针的安全注意事项
- 避免野指针:指针未初始化或释放后未置空。
- 检查空指针:解引用前验证指针是否为
nullptr。 - 防止内存泄漏:确保
new分配的内存最终被delete释放。
示例综合代码
#include <iostream>
using namespace std;
int main() {
int a = 5;
int *p = &a;
cout << *p << endl; // 输出5
int *arr = new int[3]{1, 2, 3};
cout << arr[1] << endl; // 输出2
delete[] arr;
return 0;
}
更多推荐



所有评论(0)