Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando Structs em C: Definição, Variáveis, Acesso e Exemplos Avançados

Dominando Structs em C

Aprenda a definir, criar e usar structs em C com exemplos claros e boas práticas.

O que é uma Struct em C?

Uma struct (abreviação de structure) é um tipo de dado composto que agrupa variáveis de diferentes tipos sob um único nome. É a base para criar estruturas de dados complexas em C.


Definindo uma estrutura

Antes de criar variáveis de um tipo struct, você deve definir o tipo. A palavra-chave struct introduz a definição:

struct nomeEstrutura { tipoDado membro1; tipoDado membro2; … }; 

Exemplo:

struct Pessoa { char nome[50]; int citNo; float salario; }; 

Isso cria um novo tipo chamado struct Pessoa. Agora você pode declarar variáveis desse tipo.


Criando variáveis de estrutura

Definir um tipo struct não aloca memória. Para trabalhar com ele, declare variáveis:

struct Pessoa { // membros }; int main() { struct Pessoa pessoa1, pessoa2, p[20]; return 0; } 

Alternativamente, combine a definição e a declaração de variáveis:

struct Pessoa { // membros } pessoa1, pessoa2, p[20]; 

Acessando membros da struct

Dois operadores acessam membros:

  1. . – Operador de acesso a membro.
  2. -> – Operador de membro para ponteiro para struct (coberto em tutorial separado).

Para ler ou modificar o salario de pessoa2:

pessoa2.salario 

Exemplo 1: Usando uma Struct em C

#include <stdio.h> #include <string.h> struct Pessoa { char nome[50]; int citNo; float salario; } pessoa1; int main() { strcpy(pessoa1.nome, "George Orwell"); pessoa1.citNo = 1984; pessoa1.salario = 2500; printf("Nome: %s\n", pessoa1.nome); printf("Nº Cidadania: %d\n", pessoa1.citNo); printf("Salário: %.2f", pessoa1.salario); return 0; } 

Saída

Nome: George Orwell Nº Cidadania: 1984 Salário: 2500.00

Observe que strcpy() copia a string para o array char de tamanho fixo porque o operador de atribuição não pode ser usado diretamente com arrays.


Usando typedef com Structs

A palavra-chave typedef cria um alias para um tipo, simplificando declarações:

typedef struct Distancia { int pes; float polegada; } distancias; int main() { distancias d1, d2; } 

Sem typedef, você escreveria:

struct Distancia d1, d2; 

Exemplo 2: Alias na prática

#include <stdio.h> #include <string.h> typedef struct Pessoa { char nome[50]; int citNo; float salario; } pessoa; int main() { pessoa p1; strcpy(p1.nome, "George Orwell"); p1.citNo = 1984; p1.salario = 2500; printf("Nome: %s\n", p1.nome); printf("Nº Cidadania: %d\n", p1.citNo); printf("Salário: %.2f", p1.salario); return 0; } 

Saída

Nome: George Orwell Nº Cidadania: 1984 Salário: 2500.00

Estruturas aninhadas

Structs podem conter outras structs, permitindo modelagem hierárquica de dados:

struct complexo { int imag; float real; }; struct numero { struct complexo comp; int inteiros; } num1, num2; 

Para definir imag de num2 como 11:

num2.comp.imag = 11; 

Exemplo 3: Structs aninhadas em ação

#include <stdio.h> struct complexo { int imag; float real; }; struct numero { struct complexo comp; int inteiro; } num1; int main() { num1.comp.imag = 11; num1.comp.real = 5.25; num1.inteiro = 6; printf("Parte Imaginária: %d\n", num1.comp.imag); printf("Parte Real: %.2f\n", num1.comp.real); printf("Inteiro: %d", num1.inteiro); return 0; } 

Saída

Parte Imaginária: 11 Parte Real: 5.25 Inteiro: 6

Por que usar Structs em C?

Suponha que você precise armazenar nome, número de cidadania e salário de uma pessoa. Sem structs, você criaria variáveis separadas para cada campo para cada pessoa, levando rapidamente a duplicação de código e confusão. Structs encapsulam dados relacionados em uma única unidade lógica, promovendo código mais limpo e manutenção mais fácil.


O que vem a seguir?

Linguagem C

  1. C# Hello World – Criando Sua Primeira Aplicação C#
  2. Entendendo Palavras-chave e Identificadores em C#: Regras, Listas e Boas Práticas
  3. Domine Variáveis e Tipos de Dados Primitivos em C#: Guia Completo
  4. Operadores em C# – Guia Completo dos Operadores em C#
  5. Dominando Operadores Bitwise e Bit Shift em C#: Guia Abrangente
  6. Fundamentos de C#: Essenciais de Entrada e Saída
  7. Expressões, Instruções e Blocos em C#: Guia Completo com Exemplos Práticos
  8. Dominando Comentários em C#: Tipos, Boas Práticas e Documentação XML
  9. Dominando a Instrução Switch em C#: Sintaxe, Exemplos e Boas Práticas
  10. Operador Ternário em C#: Guia Conciso para Expressões Condicionais