C
← Volver a Cadeas de caracteres Estruturas Seguir con Unións


Unha estrutura de datos é un tipo definido polo programador que está formado por un conxunto definido de datos de calquera tipo. Estes datos son os “elementos” da estrutura.

Definición

editar

Para utilizar as estruturas, primeiro hai que definir unha. A definición dunha estrutura consiste en asignarlle un identificador a un tipo de estrutura, que estará formada por unha serie de variables internas que se declaran dentro da definición da estrutura. A sintaxe fundamental sería a seguinte:

// Definición da estrutura:
struct identificador{
  tipo1 variable1;
  tipo2 variable2;
  // ...
  tipon variable n;
}

Unha vez definida unha estrutura, pódense declarar variables dese tipo. Esta sería a sintaxe fundamental da declaración dunha variable do tipo dunha estrutura previamente definida:

// Declaración de variables do tipo da estrutura:
struct identificador variable;

Velaquí un exemplo, que quizais facilite a comprensión das estruturas:

// Definición da estrutura:
struct t_data
{
  int dia;
  int mes;
  int ano;
}

// Declaración de variables do tipo da estrutura:
struct t_data data_inicial, data_final;

Tamén é posible definir unha estrutura durante a declaración dunha variable dese tipo. A súa sintaxe sería a seguinte:

struct identificador {
  tipo1 variable1;
  tipo2 variable2;
  // ...
  tipon variable n;
} variable;

Cómpre mencionar que habitualmente asígnaselles un identificador personalizado ás estruturas para poder substituír «struct identificador» por un simple «identificador» á hora de declarar variables do tipo da estrutura. Isto pode facerse de maneira especial coas estruturas na súa definición:

typedef struct {
  // Definición da estrutura.
} identificador;

Deste xeito, abondará co «identificador» para declarar unha variable do tipo da estrutura:

identificador variable;

Ademais, é habitual que o identificador das estruturas comece por letra maiúscula.

Traballar con estruturas

editar

Para traballar individualmente cun dos datos dunha estrutura, utilízase o identificador da estrutura e mailo identificador da súa variable interna á que se quere facer referencia, separados por un punto. A sintaxe fundamental sería:

estrutura.variable_interna

Valga este exemplo para ilustralo mellor:

// Continuando co exemplo anterior, poderíamos traballar só co día da
// variable "data_inicial" facendo referencia a el como:
data_inicial.dia

Ás veces non se vai contar co identificador da estrutura con cuxos datos imos traballar, senón que só disporemos dun punteiro a dita estrutura. Neste caso, para facer referencia a un dos datos da estrutura, farase o seguinte:

punteiro->dato

Ademais, na declaración dunha estrutura pódense inicializar os valores das variables que contén. O que si, isto só pode facerse para asignarlle valores iniciais a todas as variables da estrutura, e na orde en que se declararon ao declarar o tipo de estrutura. Nada mellor para entender o modo de facelo que seguir co exemplo anterior:

// Declaración inicializada de variables do tipo da estrutura antes declarada:
struct t_data data_inicial={18,5,1991}, data_final={28,1,2010};

Dentro dunha estrutura pódese meter calquera tipo de dato. Podemos meter calquera dos datos fundamentais, pero tamén podemos meter, por exemplo, matrices, punteiros e mesmo outras estruturas. De aí a súa versatilidade e a importancia de coñecer a súa existencia e comprender o seu funcionamento. Ademais, pode que comprender o funcionamento das estruturas facilite posteriormente a comprensión do funcionamento das clases de C++.

Campos de bits

editar

O campo de bits é unha estrutura utilizada con moi pouca frecuencia. Esta estrutura, en vez de utilizar variables con tipos diferentes, está formada polas partes dun enteiro. É dicir, divídense os bits que conforman un tipo enteiro en varios elementos. A seguinte é a súa sintaxe fundamental:

struct identificador {
  tipo
  elemento1: bits1,
  elemento2: bits2,
  // ...
  elementon: bitsn;
};

Un exemplo podería ser o seguinte:

struct campodebits { 
  unsigned short
  campo_1: 6, // 6 bits
  campo_2: 6,
  campo_3: 1,
  campo_4: 1,
  campo_5: 2;
};

Á hora de traballar cos elementos da estrutura, faise como con calquera outra estrutura.


C
← Volver a Cadeas de caracteres Estruturas Seguir con Unións