Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introdução
2. Estruturas (struct em C)
o Estruturas podem agrupar diferentes variáveis de diferentes tipos
tais como int, char, float, double, vetores, matrizes, strings,
ponteiros ou até mesmo outras estruturas.
o Uma Estrutura é portanto um conjunto de uma ou mais variáveis
agrupadas e representadas sob um único nome. A ideia é que
armazene os dados de uma mesma entidade, por exemplo no
caso de uma ficha pessoal é necessário guardar o nome, telefone
e endereço de uma pessoa: a ficha seria então seria uma
estrutura. A estrutura serve então para agrupar um conjunto de
dados diferentes, formando um novo tipo de dados
• Declaração de Estruturas:
o A declaração básica de Estruturas pode ser feita através da
seguinte sintaxe:
struct nome_da_estrutura {
tipo_1 var_1;
tipo_2 var_2; ...
tipo_n var_n;
};
o A declaração de uma estrutura corresponde somente à definição
de um novo tipo (isto é, da sua estrutura). Nela não está implícita
a declaração de variáveis do tipo estrutura.
int main()
{
struct Data d1 = {23,1957,"Jan"};
printf("Data inicial e:");
printf("%d/%s",d1.Dia,d1.Mes);
printf("/%d\n",d1.Ano);
printf("Entre com o dia:");
scanf("%d",&d1.Dia);
printf("Entre com o mes:");
scanf("%s",d1.Mes);
printf("Entre com o ano:");
scanf("%d",&d1.Ano);
printf("A data digitada e:");
printf("%d/%s/%d\n",d1.Dia,d1.Mes,d1.Ano);
return 0;
}
Exemplo6:
typedef float Real; // redefinindo o nome do
tipo float -> Real
typedef int inteiro; // redefinindo o nome do
tipo int -> Inteiro
struct Data
{
inteiro cod; // cod do tipo inteiro
Real valor; // valor do tipo Real
};
int main()
{
struct Data d1;
printf("Entre com o codigo do Produto:");
scanf("%d",&d1.cod);
printf("Qual o valor do Produto?");
scanf("%f",&d1.valor);
return 0;
}
Exemplo7:
#include <stdio.h>
typedef struct // Cria uma STRUCT para armazenar
os dados
{
float Peso; // define o campo Peso
int Idade; // define o campo Idade
float Altura; // define o campo Altura
} Pessoa; // Define o nome do novo tipo criado
...
• Matrizes de Estruturas:
int main()
{
int i;
for (i=0; i<10;i++){
printf("Entre com o peso da pessoa %d =
", i+1);
scanf("%f",&Povo[i].Peso);
printf("Entre com a idade da pessoa %d =
", i+1);
scanf("%d",&Povo[i].Idade);
printf("Entre com a altura pessoa %d =
", i+1);
scanf("%f",&Povo[i].Altura);
}
printf("RELATORIO GERENCIAL");
printf("\n \n PESOS");
printf("\n ---------------------");
for (i=0; i<10;i++){
printf("\n Peso da pessoa %d = %.2f",
i+1,Povo[i].Peso);
}
printf("\n \n IDADES");
printf("\n ---------------------");
for (i=0; i<10;i++){
printf("\n Idade da pessoa %d = %d",
i+1,Povo[i].Idade);
}
printf("\n \n ALTURAS");
printf("\n ---------------------");
for (i=0; i<10;i++){
printf("\n Altura da pessoa %d = %.2f",
i+1,Povo[i].Altura);
}
return 0;
}
• Estruturas e Funções:
o Passagem de Structs por Parâmetro
Para passar uma struct por valor basta declará-la como um dos
parâmetros, como no exemplo a seguir:
#include <stdio.h>
int main()
{
Pessoa Joao, P2;
Pessoa Povo[10];
Joao.Idade = 15;
Joao.Peso = 60.5;
Joao.Altura = 1.75;
Povo[4].Idade = 23;
Povo[4].Peso = 75.3;
Povo[4].Altura = 1.89;
P2 = Povo[4];
P2.Idade++;
int main()
{
Pessoa Joao,Rayssa;
Joao = SetandoPessoa(15,60.5,1.75); //
atribui o retorno da funcao à uma variavel
struct ->Joao
Rayssa = SetandoPessoa(13,45,1.48); //
atribui o retorno da funcao à uma variavel
struct ->Rayssa
ImprimePessoa(Joao); // chama a funcao que
irá imprimir os dados da variavel Joao
ImprimePessoa(Rayssa); // chama a funcao que
irá imprimir os dados da variavel Rayssa
return 0;
}