Post on 09-Aug-2015
Tutoria AEDSIPablo Silva
Registros em C
Um registro (= record) é um “pacote” de variáveis, possivelmente de tipos diferentes. Na linguagem C, registros são conhecidos como structs (o nome é uma abreviatura de structure.
Fonte: IME USP
Sintáxe de um struct
Um struct pode ser declarado de diversas maneiras. Vamos ver quais são e suas diferenças.
Sintáxe de um structstruct {
As variáveis são declaradas aqui dentro.
} nome_da_variável1, nome_da_variável2, ... ;
struct {
int a; char b; float c; int v[5];
} x;
Declarar a struct desta maneira cria diretamente uma variável para poder dar acesso aos itens que estão dentro da struct. Observe o exemplo abaixo:
Declarar o struct sem um nome, não nos possibilita criar mais variáveis desta struct, somente as já definidas após o fechamento da chave. Para este caso, criamos somente uma variável x, mas poderíamos ter criado mais.
Para acessar as variáveis dentro da struct temos que utilizar a variável criada da seguinte maneira:
x.a (o operador . (ponto), para o struct é o operador de acesso e quando fazemos x.a, estamos acessando a variável int a dentro do struct.
Portanto para dar valor ao a por exemplo, fazemos:
x.a=10;
E então, a variável a que está dentro de x, terá 10.
Sintáxe de um struct
struct {
int a; char b; float c; int v[5];
} x;
Uma possível representação visual para uma struct seria:
x
v[]
b
c
a
Sintáxe de um struct
struct {
int a; char b; float c; int v[5];
} x;
Uma possível representação visual para uma struct seria:
x
10
v[]
b
c
aSe fizermos:
x.a = 10;
A caixinha de a receberá o valor 10!
Sintáxe de um struct
struct {
int a; char b; float c; int v[5];
} x;
Uma possível representação visual para uma struct seria:
x
10
v[]
b
c
aSe fizermos:
x.v[1] = 5;
A posição 1 da caixinha de v (que é um vetor de 5 posições) receberá 5.
5
E assim por diante!