2015-01-28 2 views
-11
Segment computeSegment(Triangle& t, float z) 
{ 
    Vertex** vs = t.vertices; 
    // ... 
} 

Здесь Vertex - это название структуры. Не могли бы вы рассказать мне, что значит ** в Vertex** vs = t.vertices;?Что такое использование ** в C++?

+0

Изучают использование '*', и вы поймете, '' **. –

+0

Учитывая имена переменных, я предполагаю, что 'Triangle' имеет член' vertices', который является указателем на массив указателей на 'Vertex'es, поэтому' vs [0] 'даст вам * указатель * для первая вершина. – 5gon12eder

+1

Без '**' мы не могли бы '***', и тогда у нас не было бы [трехзвездочного программиста] (http://c2.com/cgi/wiki?ThreeStarProgrammer) – Yakk

ответ

2

Vertex* является указателем на вершину, поэтому Vertex** является указателем на указатель на вершину - еще один уровень косвенности.

Например:

int i = 0; 
int * iPtr = &i;  // iPtr -> i 
int ** iPtrPtr = &iPtr; // iPtrPtr -> iPtr -> i 
Смежные вопросы