Puntero con forma

Primero analice los cambios en los parámetros formales dentro del alcance de la función, como se muestra en la siguiente figura. La primera línea son los nombres de los tres punteros en orden, la segunda línea son los valores de los punteros A, B y C (estos valores son direcciones y los valores dados aquí son todos valores hipotéticos), y la tercera línea es A, B y C en orden El valor que apunta al contenido.

Ahora analiza la declaración de función divertida. temp es un puntero entero.

Declaración:? temp = a; a = b; b = temperatura; los valores de los punteros A y B (tenga en cuenta los valores de las direcciones) se intercambian como se muestra a continuación.

Nota:

La primera oración es temp = a; make temp = a = 0x00

La segunda oración es a = b; 10 ;

La tercera oración b = temp hace b = 0x00

Luego analice las tres declaraciones * temp = * b; * b = * c = * temp por turno;

(1)* temp = * b; El valor correspondiente a la dirección 0x00 ha sido cambiado, como se muestra en la siguiente figura. Debido a que temp y b apuntan a la misma memoria en este momento, el valor no ha cambiado:

(2)* b = * c consulte la siguiente figura:

(3) * c = * temp; mira la imagen a continuación:

Puedes ver que en el cuerpo de la función, los valores correspondientes de los punteros A, B y C deben ser 7, 3 y 3. respectivamente, pero tenga en cuenta que temp = A; a = b; b = temperatura; estas tres oraciones cambian el valor del puntero, es decir, solo se liberarán las copias de los parámetros de los tres punteros en el cuerpo de la función. después de que finalice el ciclo de vida de la función y no afectará los punteros originales. Sin embargo, es importante cambiar el valor del puntero al contenido del cuerpo de la función. Por lo tanto, después de que la función regresa, los valores (direcciones) de los punteros A y B pasados ​​por la función no se intercambian, por lo que el resultado es como se muestra en la siguiente figura: