Os tipos agregados classificam-se como homogêneos e heterogêneos. Homogêneos Conjunto de elementos de mesmo tipo que podem ser acessados por um subscrito (índice). Podem possuir uma dimensão (vetores) ou mais de uma (matrizes). Declaração: < tipo_variável > < nome_variável > [< no.elementos >] Ex: float notas [10]; int codigo [10] [2]; Heterogêneos Conjunto de elementos que podem ser de mesmo tipo existente, inclusive outros agregados (structs, unions, vetores,...), Struct Funciona como o registro que já conhecemos. A variável é composta de vários elementos, que podem ser de tipos diferentes e ela possui espaço reservado na memória para armazenar os valores de todos os seus elementos simultâneamente. Ex. struct empregado { int matricula; float salario; char nome[31]; }; Union Uma variável do tipo union, apesar de possuir declaração semelhante a struct (basta substituir struct por union) sua finalidade é é declarar uma variável que ora pode assumir um valor de um tipo ora de outro. Seu objetivo é a economia de memória. Ex. union pessoa { char CPF[12]; char CGC [20]; }; Neste caso, uma variável do tipo pessoa pode ser física ou jurídica. Se for pessoa física será armazenado o valor do CPF. Se for jurídica será armazenado o valor do CGC.Este espaço de memória deve ser suficiente apra armazenar o valor do CPF ou o valor do CGC, então o tamanho da union sempre será igual ao tamanho do seu melhor elemento. A linguagem não possui nenhum controle interno que permita saber em um determinado momento se o valor armazenado é o CPF ou CGC . Este controle é de responsabilidade do programador. POdemos criar tipos usando a palavra typedef antes da palavra struct.Assim podemos declarar variáveis do tipo criado. Ex: typedef struct { int x; float y; }Tteste; Tteste var1, var2; |