ESTRUTURA DE DADOS I
Aula 5 e 6
Ponteiros para Structs
Prof. Me. Anderson Luis Schvindt Bittencourt
1
Ponteiros para Structs
Estrutura (struct) é uma coleção de uma ou mais
variáveis, possivelmente de tipos diferentes, que
podem ser manipuladas em separado ou em
conjunto.
1) Declaração de uma estrutura. Existem 3
formas:
struct
{
int matricula;
char nomeEmpregado[50];
char cpf[14];
double salario;
} empregado1, empregado2; 2
Ponteiros para Structs
• 2) Declaração de uma estrutura utilizando nome.
struct dadosEmpregado
{
int matricula;
char nomeEmpregado[50];
char cpf[14];
double salario;
};
struct dadosEmpregado empregado1, empregado2;
• 3) Declaração de uma estrutura utilizando typedef.
typedef struct
{
int matricula;
char nomeEmpregado[50];
char cpf[14];
double salario;
} TIPO_EMPREGADO ; 3
TIPO_EMPREGADO empregado1, empregado2;
Ponteiros para Structs
• Acessando os dados de uma estrutura. Exemplos:
#include <conio.h>
#include <stdio.h>
struct dadosEmpregado
{
int matricula;
char nomeEmpregado[50];
char cpf[14];
double salario;
};
struct dadosEmpregado empregado1, empregado2;
main ( )
{
printf ("Digite o nome : ");
gets ([Link]); //lê a string
fflush (stdin); //limpa o buffer de teclado
printf("\nDigite o identificador da pessoa : ");
scanf("%d", &[Link]);
fflush(stdin);
printf("\nDigite o CPF : ");
gets([Link]);
system("pause"); 4
}
Ponteiros para Structs
Declaração de um ponteiro para uma estrutura:
struct NOME_ESTRUTURA *NOME_PONTEIRO;
Exemplo:
struct dadosEmpregado *ponteiroStruct;
TIPO_EMPREGADO *ponteiro2Struct;
Apontando e referenciando uma estrutura pelo ponteiro:
Apontando:
struct pessoa *ponteiroEstruturaPessoa;
ponteiroEstruturaPessoa = &informacaoPessoa;
Referenciando:
ponteiroEstruturaPessoa -> identificador;
Usa-se o próprio ponteiro e uma seta (->) para
indicar o membro. 5
Ponteiros para Structs
• Declarando um ponteiro em uma estrutura:
A declaração de um ponteiro na estrutura é feito da
mesma forma que a declaração fora dela. Exemplo:
struct exemplo
{
int *ponteiroInteiro;
char *ponteiroChar;
float *ponteiroFloat;
};
struct exemplo infoExemplo;
Apontamento:
int i =5;
[Link] = &i;
Referência: 6
printf(“Valor referenciado = %d", [Link]);