Red de conocimientos sobre prescripción popular - Conocimiento de perdida de peso - ¿Puedo asignar directamente un valor a los datos señalados por el puntero en lenguaje C? ¿Por qué?

¿Puedo asignar directamente un valor a los datos señalados por el puntero en lenguaje C? ¿Por qué?

Es posible, pero int *p; *p=7;

Porque "los datos señalados por el puntero se pueden asignar directamente", y p aquí aún no los ha señalado, por lo que no se puede asignar. Este tipo de puntero se llama "puntero flotante". no se le puede asignar un valor.

Esto funciona:

int a, *p=amp; a; *p=7;

De hecho, a es igual a 7.

Información ampliada:

Notas

También puede utilizar el operador de asignación para asignar un valor a una variable de puntero, pero asegúrese de que las dos variables de puntero estén del mismo tipo.

Supongamos que existe la siguiente definición de variable:

int i, j, *p, *q; p> Estas dos oraciones asignan las direcciones de las variables i y j a las variables de puntero pyq respectivamente;

Después de ejecutar q=p, se ejecuta esta declaración, y las variables de puntero pyq apuntan a la misma variable i, por lo que las variables de puntero p y q almacenan la dirección amp i de la variable i. La variable i no se inicializa en este momento, solo se le asigna una unidad de memoria.

Nota: q=p; y *q=*p

El primero asigna un valor a la variable del puntero q, es decir, asigna la dirección de una variable almacenada en el puntero. variable p a q. Obviamente, después de la asignación, q y p apuntan a la misma variable. ?

Este último asigna el valor señalado por p a la variable señalada por q.

Ejemplo:

p=amp;i;

q=amp;j;

i=2;

j=3;