Son variables en C ++ implícitamente punteros
Estoy teniendo dificultades para resolver esto. Cuando escribimos en c ++
int a = 4;
Está claro que el administrador de memoria asigna 4 bytes para contener el valor 4 y mantiene ese valor en una dirección específica. Dando el hecho de que "una" variable es solo un nombre.
- ¿Dónde se almacena la variable "a"?
- ¿Lo almacena en algún lugar de la memoria y apunta a la dirección de memoria de 4, ya que sabemos que 4 es solo un objeto temporal por sí solo y "a" enlaza una referencia o un puntero a él?
Respuestas
Son variables en C ++ implícitamente punteros
No. Las variables no son indicadores implícitamente.
¿Dónde se almacena la variable "a"?
En algún lugar (o en ningún lugar ) de la memoria. La asignación de memoria para las variables es responsabilidad de la implementación del lenguaje.
¿Lo almacena en algún lugar de la memoria?
Sí (o en ninguna parte).
y apunta a la dirección de memoria de 4
No. No existe tal puntero en la máquina abstracta.
Entonces, ¿cómo sabe "a" sobre el objeto "4"
4 no es un objeto. 4 es un valor literal o según el contexto / perspectiva.
ano es algo que sepa nada. El compilador sabe que el objeto nombrado por atiene el valor 4.
- ¿Dónde se almacena la variable "a"?
Según mi experiencia, "a" no se almacena en tiempo de ejecución. El estándar tampoco requiere que se almacene. Es un nombre que se utiliza para compilar, vincular y depurar. Los datos que necesita el compilador, el vinculador y el depurador son específicos de la plataforma. El estándar no dicta la naturaleza de esos datos.
Dado eso, su segunda pregunta puede ignorarse.