Operadores de acceso a struct y union

Existen dos operadores de acceso a los campos de un struct o de un union: el operador . y el operador ->.

Operador .

Sintaxis

variable.nombreCampo

Descripción

La forma de acceder a los campos de una variable de tipo struct o union es empleando el operador ".".

Operador ->

Sintaxis

puntero->nombreCampo
(*puntero).nombreCampo

Descripción

Para acceder a los campos de una estructura a través de un puntero se pueden usar los operadores punto y asterisco o bien emplear el operador -> que tiene un formato más simple y compacto.

Ejemplo

El procedimiento extrae elimina el primer nodo de una lista enlazada que contenga la información indicada como segundo parámetro.

#include <stdlib.h>
struct Nodo{          //Tipo de nodo de una lista enlazada
   int info;          //Información almacenada
   struct Nodo* sig;  //Puntero al siguiente en la lista
};

void extrae(struct Nodo **pNodo, int dato){
   struct Nodo *actual=*pNodo;
   if((actual != NULL) &&             //Si no se ha alcanzado el final de la lista enlazada
      (actual->info == dato)){        //Condición de base equivalente a (*actual).info==dato
         *pNodo=actual->sig;
         free(actual);
   }   
   else
      extrae(&(actual->sig),dato);
}