Neste tutorial, você aprenderá sobre os tipos de estrutura na Programação C. Você aprenderá a definir e usar estruturas com a ajuda de exemplos.
Na programação C, uma estrutura (ou estrutura) é uma coleção de variáveis (podem ser de tipos diferentes) sob um único nome.
Como definir estruturas?
Antes de criar variáveis de estrutura, você precisa definir seu tipo de dados. Para definir uma estrutura, a struct
palavra-chave é usada.
Sintaxe de estrutura
struct structureName (dataType member1; dataType member2;…);
Aqui está um exemplo:
struct Person (char name (50); int citNo; float salary;);
Aqui, um tipo derivado struct Person
é definido. Agora, você pode criar variáveis desse tipo.
Crie variáveis de estrutura
Quando um tipo de estrutura é declarado, nenhum armazenamento ou memória é alocado. Para alocar memória de um determinado tipo de estrutura e trabalhar com ela, precisamos criar variáveis.
Veja como criamos variáveis de estrutura:
struct Person (char name (50); int citNo; float salary;); int main () (struct Person person1, person2, p (20); return 0;)
Outra maneira de criar uma variável de estrutura é:
struct Person (char name (50); int citNo; float salary;) person1, person2, p (20);
Em ambos os casos, duas variáveis pessoa1, pessoa2 e uma variável de matriz p com 20 elementos do tipo struct Person
são criadas.
Acessar membros de uma estrutura
Existem dois tipos de operadores usados para acessar membros de uma estrutura.
.
- Operador membro->
- Operador de ponteiro de estrutura (será discutido no próximo tutorial)
Suponha que você deseja acessar o salário de person2. Veja como você pode fazer isso.
person2.salary
Exemplo: adicione duas distâncias
// Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )
Resultado
1ª distância Insira os pés: 12 Insira as polegadas: 7,9 2ª distância Insira os pés: 2 Insira as polegadas: 9,8 Soma das distâncias = 15'-5,7 "
Typedef de palavra-chave
Usamos a typedef
palavra-chave para criar um nome alternativo para tipos de dados. É comumente usado com estruturas para simplificar a sintaxe de declarar variáveis.
Este código
struct Distance (int feet; float inch;); int main () (struct Distance d1, d2;)
é equivalente a
typedef struct Distance (int feet; float inch;) distâncias; int main () (distâncias d1, d2;)
Estruturas aninhadas
Você pode criar estruturas dentro de uma estrutura de programação C. Por exemplo,
estrutura complexa (int imag; float real;); número da estrutura (composição complexa da estrutura; inteiros inteiros;) num1, num2;
Suponha que você queira definir imag da variável num2 como 11. Veja como você pode fazer isso:
num2.comp.imag = 11;
Por que structs em C?
Suponha que você queira armazenar informações sobre uma pessoa: seu nome, número de cidadania e salário. Você pode criar diferentes variáveis name, citNo e salary para armazenar essas informações.
E se você precisar armazenar informações de mais de uma pessoa? Agora, você precisa criar diferentes variáveis para cada informação por pessoa: nome1, citNo1, salary1, nome2, citNo2, salary2, etc.
Uma abordagem melhor seria ter uma coleção de todas as informações relacionadas em uma única Person
estrutura de nome e usá-la para cada pessoa.
Mais sobre struct
- Estruturas e indicadores
- Passando estruturas para uma função