Você está na página 1de 3

Estruturas

Uma coleção de variáveis agrupadas e referenciadas por um nome. Também conhecida como
Variável Composta Heterogênea.
Uma definição de Estrutura forma um modelo que pode ser usado como tipo para se declarar
variáveis desse tipo de estrutura. Logo, a declaração de uma estrutura não ocupa memória, e sim as
variáveis que forem declaradas como sendo do tipo dessa estrutura.
As variáveis que compreendem uma estrutura podem ser de tipos diferentes e, em geral, são
logicamente relacionadas ou têm uma certa afinidade.

A declaração de uma estrutura pode ser feita de duas formas:


 Utilizando-se o comando typedef, para se definir um tipo de estrutura
typedef struct
{ tipo nomeDaVariável1;
....
tipo nomeDaVariáveln;
} nomeDaEstrutura;

Ex: typedef struct


{ int codigo;
char nome[30];
char ender[40];
} malaDireta;

Exemplo de uma declaração de uma ou mais variáveis do tipo estrutura.:


typedef struct
{ int codigo;
char nome[30];
char ender[40];
} malaDireta;
maladireta md1, md2; // declaração das variáveis md1 e md2

 Utilizando-se apenas a declaração de uma estrutura


struct nomeDaEstrutura
{ tipo nomeDaVariável1;
....
tipo nomeDaVariáveln;
} ;

Ex: struct malaDireta


{ int codigo;
char nome[30];
char ender[40];
};

A declaração de uma ou mais variáveis do tipo estrutura, utilizados desta forma, pode ocorrer
junto ou após a declaração de estrutura.
Ex: struct malaDireta
{ int codigo;
char nome[30];
char ender[40];
} md1, md2; // declaração das variáveis md1 e md2
Ex: struct malaDireta
{ int codigo;
char nome[30];
char ender[40];
};
struct malaDireta md1, md2; // declaração das variáveis md1 e md2

Visão das variáveis md1 e md2 na memória após as suas declarações:

md1
código nome ender

md2
código nome ender

Para se referenciar ou acessar os itens (variáveis) que compõem uma variável do tipo estrutura,
utiliza-se o ponto ( . ) logo após o nome da variável, seguido do nome do item.
Exemplos de acesso:

cin >> md1.codigo; // recebe um conteúdo e armazena em nome da variável md1

Ex:
struct x
{ int a;
float b;
} x1, x2; // declaração das variáveis x1 e x2

int main( )
{x1.a = 20;
x1.b = 3.4;
x2.a = 15;
x2.b = 2.38;
...
}

Na memória, logo após a inserção dos valores nas variáveis x1 e x2:

x1 20 3.4

a b

x2 15 2.38

a b
Vetores de Estruturas

Pode-se definir vetores sendo do tipo de uma estrutura declarada.


Ex:
struct x
{ int a;
float b;
} v[5]; // declaração do vetor v com 5 elementos do tipo da estrutura x

v ....

a b a b .... a b

0 1 .... 4

Para se referenciar ou acessar os itens (variáveis) que compõem uma variável vetor do tipo estrutura,
utiliza-se o ponto ( . ) logo após o vetor e seu índice, seguido do nome do item.

Exemplos de acesso:

cin >>v[2].b; // armazena em b da posição 2 do vetor v

if ( v(4).a > 200) //testa o valor armazenado em a da posição 4 do vetor v

k = v[i].a + c * 2; //utiliza o valor de a na posição i do vetor v na expressão

Exemplo:

Receber por digitação os dados de 30 alunos, conforme a estrutura declarada.

#include <iostream.h>
struct aluno
{ int numero;
char nome[20];
char curso[15];
} al[30]; // declaração do vetor al do tipo struct aluno
int i;

int main( )
{for (i=0; i<=29; i++)
{cout << ”\nDigite o numero do aluno: “;
cin >> al[i].numero;
cout << ”\nDigite o nome do aluno: “;
cin >> al[i].nome;
cout << ”\nDigite o curso do aluno: “;
cin >> al[i].curso;
}
...
}