Red de conocimiento informático - Computadora portátil - Problemas con bucles de control de puntero en lenguaje C

Problemas con bucles de control de puntero en lenguaje C

Si desea utilizar stu[0]-> número como este

Debe comprender el significado de stu[0]

Es equivalente a *(stu+0). No hay problema aquí.

¿Pero y si es stu[1]?

Es equivalente a *(stu+1)

Y el puntero que quieres apuntar al nodo 1 es así.

*stu + 1

Esto es un problema.

Otro problema es que al final si tu *stu ya es nulo, entonces stu no será nulo porque almacena la dirección de otro puntero. Si el otro puntero es nulo, su dirección permanecerá sin cambios.

Si quieres utilizar este método, debes escribir así

while(*stu1)

{

……

p>

(* stu 1)++;

}

Pero esto no es necesario.

Vi que usabas punteros y pensé que eran listas enlazadas.

De hecho, los punteros de orden rara vez se utilizan.

stu 1 = stu 1->; El siguiente es el método de bucle en la lista vinculada, si la lista de secuencia no permite esta operación.

Los punteros están conectados uno a uno mediante nodos.

Cada nodo tiene al menos dos partes, una almacena datos y la otra es un puntero al siguiente nodo.

El primer nodo apunta al segundo, el segundo nodo apunta al tercero, y así sucesivamente.

Por lo general, el campo de puntero del último nodo se establece en nulo para marcar el final de la lista vinculada.

mientras(stu1)

{

……

stu 1 = stu 1->; // normalmente es así.

}

Cuando se llega al último nodo, Stu 1-->; el siguiente está vacío.

Entonces esta operación consiste en asignar NULL a stu1, para que se pueda detectar el final del ciclo.