Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/04/2014, 10:32
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Duda de punteros

Código C++:
Ver original
  1. #include <stdio.h>
  2. //a =(es igual) papel con la dirección de un edificio con 10 pisos!!Recuerda lo!!! no vive nadie en el edificio aun
  3. char a[10]; // a es puntero que apunta a la dirección a[0] ya que no puede apuntar a a[1], a[2], [3].... todos a la vez XD
  4. //b =(es igual) papel sin dirección inicial, el que si podemos borrar!!!
  5. char * b;   // b es un puntero que "nunca" ha apunto nada ¡Correcto! ¡recuérdelo! ;)
  6.  
  7. int prueba ( char a[10], char * b ); //prototipo... no voy a comentar aquí sino mas abajo ;)
  8.  
  9. int main () {
  10.     prueba ( a, b ); // pasamos a y b que son punteros recuérdelo ninguno de los 2 tiene nada aun pero a apunta a[0], b es null;)
  11.     //Aqui en esta linea se va a pegar todo lo de la función "prueba" ve hacia ella antes de seguir.
  12.    
  13.     //Ahora aquí imprimimos a y b, como dije x estaba conectada con a[] y imprimirá lo que se guardo.
  14.     //B como antes de apuntar nada se había roto la conexión con *Y(puntero y) que paso a apuntar hacia "mensaje" dejando b intacto.
  15.     printf ( "\n en la función main el valor de la variable a es:\n%s de la varible b es: \n %s", a, b );
  16.     //En realidad b nunca apunto nada, siempre estuvo (null).
  17. }
  18.  
  19. //Vamos a renombrar esto por que el lio es por que se llaman igual que las globales pero en realidad creas nuevas variables
  20. //x recibe lo que tiene a, x ahora tiene la dirección de un edificio de 10 pisos que no vive nadie XD.
  21. //y recibe lo que tiene b, pero b no tiene nada (null).
  22. int  prueba ( char x[10], char * y ) {
  23.     char mensaje[30] = "hola como estas";
  24.     y = mensaje;                         //y ahora apunta hacia mensaje[0], se desvincula de b ^^, b ya no le ocurre nada mas aquí XD
  25.     printf ( "introduce un texto \n" );
  26.     fgets ( x, 10, stdin );              //x recibe los inquilinos pero x sigue conectado con a[], los inquilinos en realidad ahora viven en a[] por que todo lo que pase a x[] le va pasar a a[].
  27.    
  28.     //Aqui en en la funcion se imprime x, que esta conectada a a[], b perdio la coneccion con y cuando ese apunto hacia "mensaje".
  29.     printf ( "el valor de la variable x es:\n %s \n varibale y es :\n %s", x, y );
  30. }

Corrija me si me equivoco ^^

Última edición por vangodp; 17/04/2014 a las 15:31