📜  C++指针(1)

📅  最后修改于: 2023-12-03 15:14:04.330000             🧑  作者: Mango

C++指针

指针是C++中的一个重要概念,它允许程序员直接控制内存中的数据。指针的操作需要注意内存的使用和释放,但正确使用指针可以使程序更加高效和灵活。

定义指针

指针是一个变量,它存储了另一个变量的内存地址。指针变量需要指定所指向的变量的类型,并使用 '*' 符号进行定义。

int x = 5;
int *ptr = &x;

以上代码定义了一个名为 ptr 的指向 int 类型变量的指针。 & 符号是取地址运算符,用于获取 x 变量的内存地址并将其存储到 ptr 指针中。

操作指针

指针变量可以直接访问指向的变量的值。使用 * 符号进行解引用可以获取指针所指向的变量的值。

int y = *ptr;  // y 现在的值为 5

以上代码通过解引用 ptr 指针获取了所指向的 x 变量的值并将其存储到 y 变量中。

指针也可以进行赋值和比较操作。例如,将一个指针复制给另一个指针可以让它们指向同一个变量。

int *ptr2 = ptr;  // 让 ptr2 指向 x

将指针与 nullptr 进行比较可以判断它是否为空指针。

if (ptr == nullptr) {
    // ptr 是空指针
}
动态内存分配

C++ 中可以使用 new 运算符在运行时动态分配内存。使用 new 返回的是指向分配的内存的指针。

int *arr = new int[10];  // 分配了10个int类型的内存空间

使用完毕后,必须使用 delete 运算符释放分配的内存。

delete[] arr;  // 释放分配的内存空间
const指针

在 C++ 中,可以将指针声明为 const 类型,此时无法通过指针修改所指向的变量的值。

int x = 5;
const int *ptr = &x;  // ptr 是一个指向常量 int 的指针

以上代码中,不能通过 ptr 修改 x 的值,但可以通过 x 直接修改它的值。

总结

指针是一个非常基础且强大的概念,在 C++ 编程中广泛地应用。了解指针的定义、操作和内存分配方法,能够提升程序员对程序内存效率和性能的掌控。