Red de conocimientos sobre prescripción popular - Colección de remedios caseros - ¡Sobre el tema de la asignación de punteros en lenguaje C!

¡Sobre el tema de la asignación de punteros en lenguaje C!

int a=3, b=4, *x, * y;

* x = a; * y = b;

Las variables puntero X, Y no están inicializadas y son inciertas Los valores (valor basura) se almacenan en una variable. El acceso indirecto a una ubicación de memoria no especificada es ilegal. Entonces "* x = a; * y = b;" es ilegal. "* x = & ampa; * y = & ampb;" De manera similar, aquí se ignora temporalmente si los tipos en ambos lados del número de asignación "=" son compatibles.

int a=3, b=4, *x, * y;

x = &a;y=&b;//&A, A&B respectivamente Obtiene las direcciones de las variables A y B, y luego asigne valores a las variables de puntero X e Y.

En este momento, x apunta a A (x almacena la dirección de A), y apunta a by A puede se puede acceder a través de *x (* x y A son equivalentes), en este caso * x y A representan la misma ubicación de almacenamiento. Entonces lo que escribiste al final es correcto. Recuerde, antes de dirigir un puntero, asegúrese de que apunte a una ubicación de memoria clara.