Video: 5. Programación en C++ || Ejercicio - Pedir datos al usuario y mostrarlos en pantalla 2024
En la programación en C, el tipo y el tamaño de una variable se descubren primero declarando esa variable como un tipo específico, pero también usando la palabra clave sizeof. La segunda descripción de una variable, su contenido, puede obtenerse leyendo el valor de la variable usando la función de lenguaje C apropiada.
La tercera descripción de una variable es su ubicación en la memoria. Reúne esta información usando el operador & y el marcador de posición% p, como se muestra en O Variable, ¿Por qué eres tú?
O VARIABLE, ¿POR QUÉ TENGO EN CUENTA?
#include int main () {char c = 'c'; int i = 123; flotar f = 98. 6; doble d = 6. 022E23; printf ("Dirección de 'c'% pn", & c); printf ("Dirección de 'i'% pn", & i); printf ("Dirección de 'f'% pn", & f); printf ("Dirección de 'd'% pn", & d); return (0);}
Cuando el operador & hace un prefijo de una variable, devuelve un valor que representa la dirección de la variable, o su ubicación en la memoria. Ese valor se expresa en hexadecimal. Para ver ese valor, se usa el carácter de conversión% p, como se muestra en O Variable, ¿Por qué eres tú?
Ejercicio 1 : Escriba el código fuente de O Variable, ¿Por qué eres tú? en tu editor. Construir y correr
Los resultados producidos por el programa generado a partir del Ejercicio 1 son únicos, no solo para cada computadora sino también, potencialmente, para cada vez que se ejecuta el programa.
Dirección de 'c' 0x7fff5fbff8ff Dirección de 'i' 0x7fff5fbff8f8 Dirección de 'f' 0x7fff5fbff8f4 Dirección de 'd' 0x7fff5fbff8e8
La variable c se almacena en la memoria en la ubicación 0x7fff5fbff8ff - esa es la posición decimal 140, 734, 799, 804, 671. Ambos valores son triviales, por supuesto; la computadora realiza un seguimiento de las ubicaciones de la memoria, lo cual está bien para mí.
Esta ilustración muestra cómo se trazan esas direcciones en la memoria.
Los elementos de matriz individuales también tienen ubicaciones de memoria, como se muestra en Ubicaciones de memoria en una matriz en la línea 10. El operador & prefija la variable de elemento específico, tosiendo una dirección. El carácter de conversión% p en la función printf () muestra la dirección.
UBICACIONES DE MEMORIA EN UN ARRAY
#include int main () {char hello [] = "¡Hola!"; int i = 0; while (hello [i]) {printf ("% c at% pn", hola [i], y hola [i]); i ++;} return (0);}
Ejercicio 2 : Cree un nuevo proyecto utilizando el código fuente que se muestra en Ubicaciones de memoria en una matriz. Construir y correr
Nuevamente, la salida de ubicación de memoria es única en cada computadora.
H en 0x7fff5fbff8f0 e en 0x7fff5fbff8f1 l en 0x7fff5fbff8f2 l en 0x7fff5fbff8f3 o en 0x7fff5fbff8f4!en 0x7fff5fbff8f5
A diferencia del ejemplo del ejercicio 1, las direcciones generadas por el ejercicio 2 son contiguas en la memoria, un byte tras otro.
Ejercicio 3 : Codifique un programa para mostrar cinco valores en una matriz int junto con la dirección de memoria de cada elemento. Puede usar Ubicaciones de memoria en una matriz para inspirarlo, aunque un bucle for podría ser más fácil de codificar.
-
Por cierto, el operador de ubicación & memoria debería estar familiarizado con usted. Es utilizado por la función scanf (), que requiere una dirección de variable, no la variable misma. Eso es porque scanf () coloca un valor en una ubicación de memoria directamente. ¿Cómo? Mediante el uso de punteros, por supuesto!
-
El operador & es también el operador AND bit a bit; sin embargo, el compilador es lo suficientemente inteligente como para saber cuándo & prefija una variable y cuándo & es parte de una ecuación matemática binaria.