Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/08/2013, 11:06
amchacon
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Dudas con punteros char.

Primer punto: Se guarda de la misma forma en la que se guardan los numeros en las operaciones:

Código C:
Ver original
  1. cosa = cosa+2-4*cosa;

Los números 2 y 4 se guardan en el programa como datos constantes, con la cadena char pasa lo mismo ;).

Cabe destacar una cosa, no es lo mismo poner:

Código C:
Ver original
  1. char *p = "Hola";

Que poner:

Código C:
Ver original
  1. char p[] = "Hola";

El primero es un puntero que apunta a un valor constante (lo que hemos dicho antes). El segundo crea un array que guarda la cadena puesta a continuación.

Segundo punto: Se copia el puntero char*, esto se puede ver de la siguiente forma:

Código C:
Ver original
  1. char Cosa[] = "Hola";
  2.  
  3. Funcion(Cosa);
  4.  
  5. printf("%s",Cosa);
  6.  
  7. /...
  8.  
  9. void Funcion(char* Cosa)
  10. {
  11.    Cosa[2] = 'z';
  12. }

Se hace una copia del puntero, pero se apunta a la misma cadena. De modo que los cambios que se hagan en la funcion se ven fuera de la función.