Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2014, 22:30
Avatar de Drewermerc
Drewermerc
 
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Pregunta Duda de punteros

hola a todos.
bueno esta programando y me encontre con esto y no se a que se deba si alguien me puede explicar.
es que me di cuentas que si declaro un puntero global asi:
char a[20];
y lo imprimo tanto en una funcion como en la funcion principal main se matiene su valor.
pero su declaro un puntero asi:
char *b;
el valor solo se matiene en la funcion y cuando imprimo su valor en main aparece sin valor (NULL).
Mi pregunta es ¿por que en uno si se queda su valor y en el otro no?
Código C:
Ver original
  1. #include <stdio.h>
  2. char a[10], *b;
  3. int prueba (char a[10], char *b);
  4. int main ()
  5. {
  6.     prueba(a, b);
  7.     printf("\n en la funcion main el valor de la variable a es:\n%s de la varible b es: \n %s", a, b);
  8. }
  9. int  prueba (char a[10], char *b)
  10. {
  11.     char mensaje[30]="hola como estas";
  12.     b = mensaje;
  13.     printf("introduce un texto \n");
  14.     fgets(a, 10, stdin);
  15.    
  16.     printf("el valor de la variable a es:\n %s \n varibale b es :\n %s", a, b);
  17. }