Stack Overflow en español Asked by Brandon Jesus Juarez Munguia on November 18, 2021
Quiero saber el porqué, usando apuntadores, esta sección de código imprime de manera correcta el string "Amarillo"
#include <stdio.h>
int main(){
char *color;
color = "Amarillo";
printf("El color es: %sn", color);
return 0;
}
Un puntero es una variable que almacena la dirección de un espacio en memoria. Cuando haces:
char *color;
Estas creando una variable que apunta a un espacio en memoria, por defecto al no ser inicializada tendrá como contenido la dirección 0 (ver comentario de MrDave1999), podemos ver esto si imprimimos el valor del puntero (la dirección en memoria a donde apunta):
printf("Contenido del puntero "color": %x nn",color);
//===========Resultado:===========
//Contenido del puntero "color": 0
Ahora, cuando escribes:
color = "Amarillo";
Estás haciendo dos cosas:
Definiendo una string que consiste en un array de caracteres que finalizan en el carácter de final de línea