Declarando uma Struct
Parte da seção Logic & Flow do Journey de C da Coddy — lição 39 de 63.
Agora que você entende o que é uma struct, é hora de aprender como criar seus próprios tipos de estrutura. Declarar uma struct em C segue uma sintaxe específica que define o modelo para o seu tipo de dado personalizado.
A sintaxe básica para declarar uma struct é:
struct StructureName {
datatype member1;
datatype member2;
// ... mais membros
};Veja como cada parte funciona: você começa com a palavra-chave struct, seguida por um nome para sua estrutura, então liste todas as variáveis membros dentro de chaves. Cada membro é declarado exatamente como uma variável comum, com seu tipo de dado e nome. Não se esqueça do ponto e vírgula após a chave de fechamento!
Por exemplo, para criar uma estrutura que representa um ponto no espaço 2D:
struct Point {
int x;
int y;
};Esta declaração cria um novo tipo de dados chamado struct Point que contém dois membros inteiros: x e y. Uma vez declarado, este tipo de estrutura pode ser usado em todo o seu programa para criar variáveis que armazenam informações de coordenadas de forma organizada.
Desafio
FácilCrie um programa em C que defina uma struct para representar um livro em um sistema de biblioteca. Seu programa deve:
- Definir uma
structchamadaBookque contenha os seguintes membros:- Um inteiro
idpara armazenar o número de identificação do livro - Um array de caracteres
titlecom tamanho 50 para armazenar o título do livro - Um inteiro
pagespara armazenar o número de páginas - A float
pricepara armazenar o preço do livro
- Um inteiro
- Após definir a struct, imprima uma mensagem de confirmação:
Book struct defined successfully! - Imprima o tamanho da
structBookem bytes usandosizeof()no formato:Size of Book struct: [size] bytes - Imprima o tamanho de cada membro individualmente:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
Este desafio testa sua compreensão da sintaxe de declaração de struct, incluindo o uso adequado da palavra-chave struct, declarações de membros com tipos de dados apropriados e o ponto e vírgula após a chave de fechamento. Você também explorará como o C aloca memória para membros de struct usando o operador sizeof().
Lembre-se de que os valores exatos de tamanho podem variar dependendo da arquitetura do seu sistema, mas a sintaxe de definição da struct deve estar correta para que o programa seja compilado e executado com sucesso.
Folha de consulta
Para declarar uma struct em C, use a seguinte sintaxe:
struct StructureName {
datatype member1;
datatype member2;
// ... more members
};Comece com a palavra-chave struct, seguida por um nome para sua estrutura, e então liste todas as variáveis membros dentro de chaves. Cada membro é declarado com seu tipo de dado e nome. Não se esqueça do ponto e vírgula após a chave de fechamento!
Exemplo de uma estrutura Point:
struct Point {
int x;
int y;
};Isso cria um novo tipo de dado chamado struct Point com dois membros inteiros que podem ser usados em todo o seu programa.
Experimente você mesmo
#include <stdio.h>
int main() {
// TODO: Defina sua struct Book aqui
// Imprime mensagem de confirmação
printf("Book struct defined successfully!\n");
// TODO: Imprima o tamanho da struct Book e seus membros
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Logic & Flow
1Fundamentos de Ponteiros
O que é um Ponteiro?Declarando PonteirosO Operador de Endereço (&)O Operador de Desreferência (*)Ponteiros NULLRecapitulação: Fundamentos de Ponteiros4Projeto: Utilitário de Texto Simples
Visão Geral do ProjetoContando Caracteres7Estruturas (structs)
O que é uma Struct?Declarando uma StructCriando Variáveis de StructAcessando Membros de uma StructInicializando StructsRecapitulação: Struct de Dados de Aluno2Ponteiros e Arrays
Nomes de Arrays como PonteirosElementos de Array - PonteirosAritmética de PonteirosComparando PonteirosRecapitulação: Percorrendo Arrays com Ponteiros5Ponteiros e Funções
Passagem por ValorPassando Ponteiros para FunçõesModificando Variáveis via PonteirosUm Exemplo Clássico: SwapPassando Arrays para FunçõesRecapitulação: Ponteiros como Argumentos3Arrays de Caracteres e Strings
Strings como Arrays de charO Terminador NuloEntrada de Strings com scanfUsando strlen()Usando strcpy()Usando strcat()Usando strcmp()Recapitulação: Funções Básicas de Strings6Gerenciamento de Memória
Memória Stack vs. HeapAlocação Dinâmica - malloc()Usando sizeof() para AlocaçãoVerificando Falhas de AlocaçãoLiberando Memória com free()Alocando com calloc()Recapitulação: Array Dinâmico9Projeto: Cadastro Simples de Contatos
Projeto: Definir a Struct de ContatoFunção para Criar um Contato