Estructuras C

Introducción a las estructuras C

Utilizando lastructpalabra clave podemos crear estructuras de datos complejas utilizando tipos básicos de C.

Una estructura es una colección de valores de diferentes tipos.Matricesen C se limitan a un tipo, por lo que las estructuras pueden resultar muy interesantes en muchos casos de uso.

Esta es la sintaxis de una estructura:

struct <structname> {
  //...variables
};

Ejemplo:

struct person {
  int age;
  char *name;
};

Puede declarar variables que tengan como tipo esa estructura agregándolas después del corchete de cierre, antes del punto y coma, así:

struct person {
  int age;
  char *name;
} flavio;

O varios, como este:

struct person {
  int age;
  char *name;
} flavio, people[20];

En este caso declaro una solapersonvariable nombradaflavioy una matriz de 20personllamadopeople.

También podemos declarar variables más adelante, usando esta sintaxis:

struct person {
  int age;
  char *name;
};

struct person flavio;

Podemos inicializar una estructura en el momento de la declaración:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” };

y una vez que tenemos una estructura definida, podemos acceder a los valores en ella usando un punto:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” }; printf("%s, age %u", flavio.name, flavio.age);

También podemos cambiar los valores usando la sintaxis de puntos:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” };

flavio.age = 38;

Las estructuras son muy útiles porque podemos pasarlas como parámetros de función, o devolver valores, incrustando varias variables dentro de ellas, y cada variable tiene una etiqueta.

Es importante tener en cuenta que las estructuras sonpasado por copia, a menos que, por supuesto, apruebespunteroa una estructura, en cuyo caso se pasa por referencia.

Usandotypedefpodemos simplificar el código cuando trabajamos con estructuras.

Hagamos un ejemplo:

typedef struct {
  int age;
  char *name;
} PERSON;

La estructura que creamos usandotypedefsuele ser, por convención, en mayúsculas.

Ahora podemos declarar nuevosPERSONvariables como esta:

PERSON flavio;

y podemos inicializarlos en la declaración de esta manera:

PERSON flavio = { 37, "Flavio" };

Descarga mi gratisManual de C


Más tutoriales de clang: