structs em c

7
Tutoria AEDSI Pablo Silva

Upload: pablo-silva

Post on 09-Aug-2015

48 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Structs em C

Tutoria AEDSIPablo Silva

Page 2: Structs em C

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

Page 3: Structs em C

Sintáxe de um struct

Um struct pode ser declarado de diversas maneiras. Vamos ver quais são e suas diferenças.

Page 4: Structs em C

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.

Page 5: Structs em C

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

Page 6: Structs em C

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!

Page 7: Structs em C

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!