您现在的位置是:首页 >技术交流 >C++中 int *与 int *&的区别网站首页技术交流

C++中 int *与 int *&的区别

laocooon523857886 2024-06-17 10:43:04
简介C++中 int *与 int *&的区别

int * 和 int *& 的区别在于它们分别是指向指针和指针的引用。具体来说,int * 是一个指向 int 类型的指针,可以指向一个 int 类型的变量或数组。而 int *& 是一个指向 int 类型指针的引用,可以用来修改指针指向的变量或数组。例如,以下代码定义了一个函数 foo,它的参数为一个指向 int 类型指针的引用:

void foo(int *&p) {
    p = new int[10];
    for (int i = 0; i < 10; i++) {
        p[i] = i;
    }
}

在函数内部,我们使用 new 运算符动态分配了一个包含 10 个 int 类型元素的数组,并将指针 p 指向该数组。由于 p 是一个指向指针的引用,因此在函数调用结束后,指针 p 指向的数组仍然存在,可以在函数外部继续使用。例如,以下代码调用了函数 foo 并输出了数组的元素:

int *p = nullptr;

foo(p);

for (int i = 0; i < 10; i++) {

    std::cout << p[i] << " ";

}

输出结果为:

0 1 2 3 4 5 6 7 8 9

因此,int * 和 int *& 的区别在于前者是一个指向指针的变量,而后者是一个指向指针的引用,可以用来修改指针指向的变量或数组。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。