Duda con los punteros en C
Publicado por William Atef (11 intervenciones) el 14/04/2020 03:33:53
Hola buenas. Tengo una duda sobre los punteros en C. Se que esta pregunta es un tanto típica entre novatillos de C pero aún no he encontrado una explicación que me cuadre del todo. Allá va:
Si yo hago lo siguiente:
la variable puntero es entonces un puntero que apunta hacia la posición en memoria que almacena la variable numero. Hasta aquí todo OK.
Si yo hago lo siguiente:
Estoy declarando un puntero, eso está claro, y que además está apuntando a una posición en memoria que alberga a un char. La pregunta es: porque yo puedo asignarle al puntero "hola" directamente? Si yo hiciese lo mismo con , y le asignase por ejemplo 10, estaría diciendo que hay una posición en memoria con el valor de 10 (estaría diciendo que en una posición de memoria (10 en hexadecimal en ese caso) se alberga un valor int).
El resumen de mi pregunta es: porque al asignarle a un puntero char una string, lo que se le asigna realmente es la posición en memoria del primer char (lo que quiere decir que a parte del puntero, también se crea el string en la memoria) y al crear un puntero int y asignarle cualquier cosa, se le asigna como posición de memoria a la que apunta directamente el número que tu escribes y no sucede igual que con char.
Muchas gracias y un saludo. William
Si yo hago lo siguiente:
1
2
int numero = 9;
int * puntero = №
Si yo hago lo siguiente:
1
char * palabra = "hola";
1
int * puntero
El resumen de mi pregunta es: porque al asignarle a un puntero char una string, lo que se le asigna realmente es la posición en memoria del primer char (lo que quiere decir que a parte del puntero, también se crea el string en la memoria) y al crear un puntero int y asignarle cualquier cosa, se le asigna como posición de memoria a la que apunta directamente el número que tu escribes y no sucede igual que con char.
Muchas gracias y un saludo. William
Valora esta pregunta


0