**在C++中是什么意思

What does ** mean in C++?

本文关键字:意思 是什么 C++      更新时间:2023-10-16

例如:

bool insertInFront( IntElement **head, int data ){
    IntElement *newElem = new IntElement;
    if ( !newElem ) return false;
    newElen->data = data;
    *head = newElem; // Correctly updates head
    return true;
}

我是C++的新手,来自Java。我得到了间接语法的*,但**没有列在此页面上:http://en.wikipedia.org/wiki/Operators_in_C_and_C++#成员_and_pointer_operators

我在暴露的编程访谈的第28页上找到了这个例子

更新

我意识到这个问题太天真了,我本可以通过其他方式找到答案。很明显,我对这门语言很陌生。尽管如此,对于不知道**是指针操作的人来说,在线上并不支持询问"**是什么意思?"。在搜索C ** syntaxC++ ** meaning时,相关结果很少。此外,使用ctrl + f在上面的wiki页面和其他文档中搜索**根本不会返回任何匹配项。

我只是想从初学者的角度澄清一下,这个问题很难与重复的问题区分开来。当然,答案是一样的:-(谢谢你的帮助。

C++中没有特定的**运算符,而是两个独立的星号,声明中的星号表示指针声明。

所以在申报

IntElement **head

自变量CCD_ 10被声明为指向指向CCD_。

其含义:

int a;                // integer
int *ptrA = &a        // pointer to a integer
int **PtrPtrA = &ptrA // point to pointer to a integer

如何使用:

void function_nochange(int *pA  ) {   pA   = &b;  } 
void function_change  (int **ppA) {   *ppA = &b;  } 
int a;
int b;
void test()
{
  int *ptrA = &a
  function_nochange(ptrA)
  // here ptrA still point to int a since ptrA was copied
  function_change(&ptrA)
  // here ptrA point to int b since ptrA was passed as pointer 
} 

**VariableName表示C++中的指针到指针(指针链(

你可以在这里找到好的教程:

http://www.tutorialspoint.com/cplusplus/cpp_pointer_to_pointer.htm

http://www.codeproject.com/Articles/4894/Pointer-to-Pointer-and-Reference-to-Pointer