Saltar al contenido

¿Cómo se almacenan los valores de las variables en C?

Buscamos por diferentes foros para así tenerte la respuesta a tu dilema, si tienes alguna duda deja tu duda y respondemos con gusto.

Solución:

Tu entendimiento es completamente erróneo.

Cuando escribes int x = 4;la x representa una ubicación de memoria real en la pila, que luego se llena con el valor 4. x está irrevocablemente vinculado con ese pedazo de memoria – cuando x sale fuera de alcance la memoria también desaparece.

Cuando escribes int y = x; otra vez y representa una pieza real de la memoria. No ‘se refiere’ a xen cambio, el contenido de x son copiado dentro y.

¿Es lo mismo para todos los idiomas?

No, diferentes idiomas pueden tener y tienen semánticas completamente diferentes. Sin embargo, la forma en que lo hace C generalmente se llama semántica de valor.

y nunca referencias x. El operador de asignación, =copia valores. x es solo un valor de 4de int escribe. int y = x está asignando el valor actual de x a y, copiándolo en el proceso.

Para comportarse como usted está describiendo, y tendría que ser un puntero a un int, int *y se le asignaría la dirección de xal igual que:

#include 

int main(int argc, char *argv[]) 
    int x = 4;
    int *y = &x;
    
    
    printf("before: x: %d, y: %dn", x, *y);
    
    x = 123; // modify x
    
    printf("after:  x: %d, y: %dn", x, *y);

X ahora hace referencia a la ubicación de la memoria donde se almacena el ‘4’

No, 4 no está almacenado en ningún lado, es un parámetro para un mov. x tiene su propia ubicación de memoria que contiene un valor entero, en este caso 4.

y referencias x

No, y también tiene su propia ubicación de memoria que almacena un número entero, también en este caso 4.

Entonces, ¿por qué cuando cambio el valor de x, por ejemplo, x = 6, y no cambia?

Ambos son ubicaciones de memoria diferentes, cambiar uno no tiene impacto en el otro.

Calificaciones y reseñas

Tienes la opción de añadir valor a nuestro contenido informacional asistiendo con tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *