Título: Cadenas de caracteres con punteros Publicado por: pedroedlp en 11 Abril 2014, 04:19 am Estoy estudiando C, y hasta ahora las cadenas de caracteres las venia creando asi:
Código:
pero ahora me encontre que tambien se puede hacer asi: Código:
y no entiendo porque funciona, osea por lo que entiendo los punteros son para aputar a direcciones de otras variables, pero en este caso lo estaria usando para guardar en el una cadena de texto, no entiendo porque funciona, porque crea en el un array. Título: Re: Cadenas de caracteres con punteros Publicado por: rir3760 en 11 Abril 2014, 05:44 am Estoy estudiando C, y hasta ahora las cadenas de caracteres las venia creando asi: Esa sentencia declara al array "cadena" y sus elementos se inicializan con 'H', 'l', etc.Código
pero ahora me encontre que tambien se puede hacer asi: Funciona porque el valor inicial del puntero "cadena" es la dirección en memoria donde se almacena la cadena literal "Hola como te va". No se esta almacenando en el la cadena sino su dirección. Caso similar con el cartero: el no confunde la dirección en el sobre (un puntero) con el objeto que debe localizar (la casa).Código y no entiendo porque funciona [...] en este caso lo estaria usando para guardar en el una cadena de texto Un saludo Título: Re: Cadenas de caracteres con punteros Publicado por: pedroedlp en 11 Abril 2014, 19:55 pm Esa sentencia declara al array "cadena" y sus elementos se inicializan con 'H', 'l', etc. Funciona porque el valor inicial del puntero "cadena" es la dirección en memoria donde se almacena la cadena literal "Hola como te va". No se esta almacenando en el la cadena sino su dirección. Caso similar con el cartero: el no confunde la dirección en el sobre (un puntero) con el objeto que debe localizar (la casa). Un saludo pero si vos me decis que en ese puntero se almacena la direccion de la cadena "Hola como te va", porque cuando quiero imprimir la cadena no se pone el astarisco? Código:
Título: Re: Cadenas de caracteres con punteros Publicado por: leosansan en 11 Abril 2014, 21:12 pm pero si vos me decis que en ese puntero se almacena la direccion de la cadena "Hola como te va", porque cuando quiero imprimir la cadena no se pone el astarisco? Código:
Porque el puntero apunta al primer caracter de la cadena, ni más ni menos. Otra cosa es la cadena entera. Puedes comprobarlo con: Código
Citar H ¿Ves como apunta al primer caracter?. Ya si quieres la cadena entera usas cadena sin el asterisco inicial y, como cadena que es, con el formato %s en el printf. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Cadenas de caracteres con punteros Publicado por: rir3760 en 12 Abril 2014, 17:25 pm pero si vos me decis que en ese puntero se almacena la direccion de la cadena "Hola como te va", porque cuando quiero imprimir la cadena no se pone el astarisco? Porque cuando utilizas la función printf con el especificador "%s" esta espera la dirección en memoria (puntero) del objeto (array) cuyo contenido (cadena) debe procesar (imprimir).Código
En el lenguaje C los arrays no se pasan por valor, en su lugar se pasa su dirección en memoria. Un saludo |