Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2008, 17:11
a2a2
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 8 meses
Puntos: 4
Re: Algunas dudas sobre punteros

Puedes declararlo de las siguientes formas: (hay mas si incluimos el modificador "const", pero de momento lo no explico para no compilarlo).
char cadena1[05] = "hola"; /* Nota, al comenzar por 0 es un numero octal, por tanto 09 no sería valido */
char cadena2[5] = "hola";
char cadena3[] = "hola";
char * cadena4 = "hola";

cadena4 es un puntero, es decir una direccion de memoria en la cual está el contenido "hola". Se utiliza éste tipo de puntero cuando su contenido ("hola" en éste caso) no se va a cambiar, además normalmente tampoco se podrá cambiar aunque se quiera (ésto último en realidad depende del compilador y las opciones de compilación utilizadas).

cadena2 y cadena3 son un buffer, es decir una zona de memoria que se ha rellenado con el valor "hola". Se utiliza este tipo de variable cuando el contenido de dicho buffer va a ser modificado por el propio programa. Hay que tener en cuenta que no deben rellenarse mas caracteres de los reservados (5 en éste caso, también para cadena3 aunque no se haya puesto explícitamente).