21xrx.com
2024-11-05 18:36:05 Tuesday
登录
文章检索 我的文章 写文章
C++中的两个星号**表示什么?
2023-07-04 19:38:59 深夜i     --     --
C++ 星号 指针 双重指针

C++中的两个星号**是一种指针类型的声明符号。在C++中,指针是一种很重要的数据类型,它允许程序员直接访问计算机内存中的数据,而不需要进行复制或传递整个数据对象。

一个星号*表示一个指向某一数据类型的指针,而两个星号**则表示“指向指针”的指针。也就是说,一个指向指针类型的指针变量,可以指向另一个指针类型的变量,这个变量再指向最终的目标数据。这样的指针声明方式,使得程序员可以更加方便地访问复杂的数据结构,比如二维数组、链表等。

举个例子,假设有一个二维数组arr[][],其元素类型为int。那么我们可以用一个int型指针变量指向二维数组的第一个元素,然后再用一个指向指针类型的指针变量指向这个指针变量,这样就可以达到访问二维数组的任意一个元素的目的。

int arr[2][3] = {1,5};

int *p = &arr[0][0];        //int指针变量指向二维数组第一个元素

int **q = &p;            //指向指针的指针变量,指向p

cout << *(*q+2) << endl;      //输出3,相当于访问arr[0][2]

需要注意的是,在使用指向指针的指针变量时,要确保所有的间接引用操作都是安全的,否则可能会导致程序崩溃或出现不可预知的行为。

总之,C++中的两个星号**是一种很有用的指针类型声明方式,可以使程序员更加高效地访问复杂的数据结构。在使用时需要注意指针的安全性,以避免出现不必要的错误。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复