You are on page 1of 4

UNIPLI Linguagem de Programao I Professora Simoni Rangel de Freitas Oliveira

Estruturas e tipos definidos pelo usurio 1. Estruturas Uma estrutura um conjunto de variveis de tipos distintos ou no, agrupadas sob um nico nome. As variveis que compem a estrutura so chamadas membros, campos ou elementos. Exemplos: 1. Uma estrutura data composta por trs elementos: dia, ms e ano. struct data { int dia; int mes; int ano; }; 2. Uma estrutura aluno composta por dois elementos: nome e matrcula. struct aluno { char nome[80]; int matricula; }; Declarao de uma estrutura Sintaxe: struct <identificador> { tipo membro1; tipo membro2; ... tipo membroN; };

Com a palavra-chave struct declara-se um novo tipo de dado. A palavra seguinte ser o seu identificador. Os membros so declarados entre chaves. A declarao termina com um ponto e vrgula (;).

No momento da declarao da estrutura: No h alocao de espao de memria. definido um modelo de como estruturas do tipo identificador, devem ser construdos. Os membros no podem ser inicializados.

UNIPLI Linguagem de Programao I Professora Simoni Rangel de Freitas Oliveira

Aps ter sido declarado o novo tipo existe e pode ser utilizado para criar variveis que iro armazenar os valores. Sintaxe para a declarao das variveis: struct <identificador> <lista de variveis>; Exemplos: struct data hoje; Declarao de uma varivel, ou uma estrutura, do tipo data. alocado espao para armazenar os dados de hoje. struct aluno Joana, Marilena, Marcelo; Declarao de trs variveis, ou trs estruturas, do tipo aluno alocado espao para armazenar os dados dos trs alunos: Joana, Marilena e Marcelo. possvel declarar simultaneamente o modelo da estrutura e as variveis do tipo estrutura. Exemplos: struct data{ int dia; int mes; int ano; }hoje; Inicializao de estruturas A inicializao de estruturas semelhante inicializao de um arranjo. Exemplos: 1. struct funcionario { char nome[50]; double salario; } x, y, z; struct funcionario x = {Amanda da Silva, 370.00}; struct funcionario y = {Marcelo de Souza Junior, 450.00}; struct funcionario z = {Roberto dos Santos, 1530.00}; struct aluno{ char nome[80]; int matricula; }Joana, Marilena, Marcelo;

UNIPLI Linguagem de Programao I Professora Simoni Rangel de Freitas Oliveira

2. struct data{ int dia; int mes; int ano; }hoje; struct data hoje={13,11,2006}; Os valores para cada um dos membros so escritos entre chaves e separados por vrgula, na ordem em que foram declarados. Acesso aos elementos de uma estrutura Os elementos de uma estrutura podem ser acessados atravs do operador de acesso ponto (.). Esse operador conecta o nome de uma varivel estrutura a um membro desta. Exemplos: 1. struct funcionario{ char nome[50]; double salario; } x, y, z; // esturura x strcpy(x.nome,Amanda da Silva); x.salario=370.00 //estrutura y gets(y.nome); scanf(%lf, &y.salario); //estrutura z z=x; //atrituio de todos os campos de x para z; S possvel atribuir o contedo de uma estrutura a outra estrutura do mesmo tipo. 2. Estrutura com outras estruturas como membros. struct aluno { char nome[80]; int matricula; struct data nascimento; }fulano; gets(fulano.nome); scanf(%d, &fulano.matricula); scanf(%d, &fulano.nascimento.dia); scanf(%d, &fulano.nascimento.mes); scanf(%d, &fulano.nascimento.ano);

UNIPLI Linguagem de Programao I Professora Simoni Rangel de Freitas Oliveira

3. Vetores de estruturas Vetores de estruturas so vetores onde os elementos so estruturas. Deste modo, o acesso a um vetor de estruturas feito colocando-se o ndice entre colchetes, logo aps o nome do vetor seguido pelo operador ponto. A inicializao pode ser feita delimitando-se o contedo do vetor entre um par de chaves, assim como o contedo a ser atribudo a cada posio do vetor. O valor para cada um dos membros deve respeitar a ordem de declarao, separados por vrgula. Exemplo: #include <stdio.h> #define TAM_VET 4 void main(){ // declaracao do modelo data struct data{ int dia, mes, ano; }; // declaracao do modelo funcionario struct funcionario{ char nome[50]; double salario; struct data nascimento; }; // declarao da varivel i int i; // declaracao e inicializao do vetor de estruturas vet struct funcionario vet[TAM_VET]={ {"Adriana Martins", 350.00, {10,5,1982} }, {"Luciano Araujo de Lima", 540.00, {23,8,1983} }, {"Marcos Paulo da Silva", 3625.00, {14,1,1981} }, {"Jonathas Martins dos Santos",2368.00, {2,10,1983} } }; puts("Imprimindo os dados.\n"); for(i=0; i<4; i++){ puts(vet[i].nome); printf("Salario: %.2lf", vet[i].salario); printf("\n%d/%d/%d\n\n", vet[i].nascimento.dia, vet[i].nascimento.mes, vet[i].nascimento.ano ); } } Bibliografia HICKSON, Rosngela. Aprenda a programar em C, C++ e C#. Ed. Campus, 2002. GOTTFRIED, B. S. Programando em C. Editora LTC, 1993. KERNIGHAN, B. W., RITCHIE, D. M. C: A linguagem de programao Padro ANSI. Ed. Campus, 1989.

You might also like