Buscar

eclp_C_03

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tipos de dados estruturados não homogêneos 
Tipos estruturados
 
Tipo de dado com campos compostos de tipos mais simples.
 
Uma estrutura em C é declarada utilizando a palavra chave struct, seguida opcionalmente de um nome que pode ser usado posteriormente como uma abreviação para a estrutura, seguida de uma lista de declaração dos campos entre chaves, seguida opcionalmente de um conjunto de variáveis do tipo da estrutura.
			struct [nome] { ... } [x, y , z];
 
Uma declaração struct define um tipo.
 
Os campos ou membros da estrutura são acessados através do operador ponto (.).
 
As estruturas podem ser copiadas e atribuídas, passadas para funções e retornadas de funções.
 
As estruturas não podem ser comparadas. 
 
Como qualquer outra variável, uma variável de tipo estrutura pode ser inicializada no momento da declaração.
Exemplo 1
struct num_complexo{ 
			float pr;
 	float pi;
 }; 
 struct num_complexo c1, c2;
 
ou 
 
 struct num_complexo{ 
			float pr; 		
			float pi;} c1, c2;
Exemplo 1
int main (void)
{ 
	struct num_comlexo c;
	pirintf(“\n Digite a parte real:”); scanf(“%f”, &c.pr);
	prntf(“\n Digite a parte imag.:”); 
	scanf(“%f”, &c.pi);
	printf(“\n parte real: %f“, c.pr);
	printf(“\n parte imag: %f“, c.pi);
	return 0;
} 
Apontadores e estruturas
Com a definição anterior de num_complexo e dado o código:
 int main (void)
{ 
 struct num_comlexo c;
 struct num_complexo * pc = &c;
}
 Formas equivalentes de atribuir o valor 10 para a parte real de c:
 
pc -> pr = 10.0; 
c.pr = 10.0;
(&c) -> pr = 10.0;
(*pc).pr = 10.0;
 
A precedência do operador . é maior do que a precedência do operador *.
 
++pc -> pr equivalente a ++(pc -> pr)
Exemplo 2 
	struct num_complexo{
			float pr;
 float pi; };
int main (void)
{ 
 struct num_comlexo c = {2.3, 6.98};
 struct num_complexo * pc = &c;
...
 } 	
 
Quais das expressões a seguir estão corretas e qual o valor delas?
 	c.pr 
 	pc -> pi
	&(pc -> pr)
	pc.pr
	(&c) -> pr
	&(c.pi)
 
Estruturas auto-referenciadas e referencia mutua
Exemplo 1:
 	struct s1{
			...
 struct s1 *p; 
 ...
			}
Exemplo 2:
 		struct t {
 	...
 	struct s *p;
 				...
 }
			struct s {
 	...
 	struct t *q;
 				...
 	}
Novos nomes para tipos de dados
A linguagem C tem a facilidade typedef que permite criar nomes de tipos.
 
 typedef char *String; 
	String s1, s2;
 
typedef struct num_complexo Complexo;
typedef struct num_complexo * PComplexo;
 
typedef struct num_complexo Complexo *PComplexo;
 typedef int Vetor[100];
Vetor v1, v2;
 
Uma declaração typedef não cria um novo tipo; ela simplesmente inclui um novo nome para algum tipo existente. 
 
 O uso de typedef pode melhorar a legibilidade do código.

Continue navegando