指向指针的引用

今天在学prime的时候第一次知道指针也能被引用,因为指针也是个对象。

int* p;        // 声明一个指向 int 的指针 p
int*& a = p;   // 声明一个指向指针的引用 a,并将其初始化为指针 p
  1. int* p;: 声明了一个指向整数的指针 p

  2. int*& a = p;: 声明了一个指向指针的引用 a,并将其初始化为指针 p。这意味着 a 引用了 p 所指向的内存地址,而不是 p 指向的具体值。

通过这样的声明,我们可以通过引用 a 修改指针 p 所指向的地址。这使得我们能够灵活地改变指针的指向,而不仅仅是修改指针所指向的值。

#include 

int main() {
    int x = 5;
    int* p = &x;   // 指针 p 指向整数 x

    int*& a = p;   // 引用 a 引用了指针 p
    int y = 10;
    a = &y;        // 修改指针 p 的指向,让其指向整数 y

    std::cout << "x: " << x << std::endl;   // 输出 x 的值
    std::cout << "*p: " << *p << std::endl; // 输出 p 指向的值,即 y 的值

    return 0;
}

在上述示例中,通过引用 a 修改了指针 p 的指向,使其指向了另一个整数 y 的地址。这展示了指向指针的引用的灵活性。

加油!

你可能感兴趣的:(c++)