<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>Hola,  tengo una pregunta a cerca de punteros y es la siguiente:</div><div>Por favor corrijanme si lo que digo esta mal: </div><div>--------------------------------------------------------</div><div>Pasamos un apuntador por valor:</div><div><br></div><div>struct lista{</div><div>//miembros..</div><div>};</div><div><br></div><div>void función ( lista   *nuevo ){</div><div>//realiza alguna operación...</div><div>}</div><div><br></div><div>int main()</div><div>{</div><div>lista  *puntero;</div><div>//...</div><div>función( puntero );</div><div>}</div><div>--------------------------------------------------------</div><div>Pasamos un apuntador por referencia:</div><div><br></div><div>struct lista{</div><div>//miembros..</div><div>};</div><div><br></div><div>void funcion( lista   *&nuevo ){</div><div>//realiza alguna operacion...</div><div>}</div><div><br></div><div>int main()</div><div>{</div><div>lista  *puntero;</div><div>//...</div><div>funcion( puntero );</div><div>}</div><div>--------------------------------------------------------</div><div>Pero me surge una duda:</div><div><br></div><div>struct lista{</div><div>//miembros..</div><div>};</div><div><br></div><div>¿ Esta es una forma de pasar un apuntador por referencia o por valor?</div><div>void funcion( lista   **nuevo ){</div><div>//realiza alguna operacion...</div><div>}</div><div><br></div><div>int main()</div><div>{</div><div>lista  *puntero;</div><div>//...</div><div>funcion( &puntero );</div><div>}</div><div><br></div><div>que sentido tiene recibir como parametro un doble apuntador ?</div><div>y que aplicaciones tienen los apuntadores dobles en las listas enlazadas ?</div><div>-------------------------------------------------------------------------------------------------------------</div><div>Me podrian explicar como manejar los apuntadores dobles ?, por ejemplo: </div><div><br></div><div>int main()</div><div>{</div><div>int a=10;</div><div>int **ptr;</div><div>*ptr = &a;</div><div>**ptr = **p + 5;</div><div>cout<<ptr<<"\n";</div><div>cout<<*ptr<<"\n";</div><div>cout<<**ptr<<"\n";</div><div>system("pause");</div><div>}</div><div>Veo que para este tipo de apuntadores, la forma de manipular el contenido es con:  **ptr; </div><div>y para manipular la direccion es *p . Por favor me podrian aclarar este ejemplo?</div><div><br></div><div>De antemano muchas Gracias por su respuesta y por el Curso de C++ .</div><div>Gracias  Steven R. Davidson, y Salvador Pozo por sus grandes aportes a la programacion.</div><div><br></div><div>Att: Edwin Alexander</div><div><br></div>                                         </div></body>
</html>