C struct (estruturas)

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 structpalavra-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 Personsão criadas.

Acessar membros de uma estrutura

Existem dois tipos de operadores usados ​​para acessar membros de uma estrutura.

  1. . - Operador membro
  2. -> - 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 typedefpalavra-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 Personestrutura de nome e usá-la para cada pessoa.

Mais sobre struct

  • Estruturas e indicadores
  • Passando estruturas para uma função

Artigos interessantes...