Suponha que queremos armazenar informações sobre os usuários que usam um serviço específico. Essas informações podem incluir nome de usuário, e-mail, endereço, modo de serviço e outros. Para armazenar essas informações, podemos criar cada atributo como uma variável autônoma. No entanto, quando temos mais dez usuários, o código pode ficar fora de controle e se tornar muito difícil e cansativo de ler.
Para resolver isso, podemos criar uma estrutura. Dentro da estrutura, podemos armazenar todos os atributos compartilhados por todos os usuários e, em seguida, adicionar variáveis exclusivas para cada usuário.
Vamos dar uma olhada em vários exemplos para ver como implementar isso.
Como definir uma estrutura em C
Para definir uma estrutura em C, usamos a palavra-chave struct seguida pelo nome da estrutura. Após o nome, temos um par de chaves onde adicionamos os membros.
Considere a sintaxe abaixo:
estruturastruct_name{
/* dados */
digite member_name;
tipo member_name2;
tipo member_name3;
...
modelomember_nameN;
};
O nome da estrutura pode ser o que você quiser, desde que siga a convenção de nomenclatura da linguagem de programação C.
Podemos implementar uma estrutura de exemplo da analogia do usuário como:
estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
};
Como criar variáveis de estrutura
Existem duas maneiras principais de criar variáveis de estrutura. O primeiro é declará-los como variáveis normais, e o outro é defini-los usando chaves.
O exemplo abaixo mostra como declarar variáveis de estrutura como variáveis C padrão.
estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
};
inta Principal(intargc, Caracteres const *argv[])
{
estruturausuários usuário1,usuário2,usuário3
Retorna 0;
}
O outro método de criação de variáveis de estrutura é mostrado abaixo:
estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
}usuário1,usuário2,usuário3;
Neste exemplo, nós os criamos durante a declaração da estrutura.
Estrutura de membro inicial
Você não pode inicializar os membros da estrutura durante a criação, pois não há memória alocada para o tipo.
Para inicializar os membros de uma estrutura, você usa as chaves conforme mostrado abaixo:
estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
};
inta Principal(intargc, Caracteres const *argv[])
{
estruturausuários usuário1= {'meunomedeusuario', '[email protegido]', 35, verdade}
Retorna 0;
}
Membros da estrutura de acesso
Para acessar os membros de uma estrutura, usamos o operador ponto, começando com o nome da estrutura, um ponto e o nome do membro.
estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
};
inta Principal(intargc, Caracteres const *argv[])
{
estruturausuários usuário1= {'meunomedeusuario', '[email protegido]', 35, verdade}
usuário1.o email = '[email protegido]'
Retorna 0;
}
Neste exemplo, acessamos os membros do user1.
Palavra-chave Typedef
Usamos a palavra-chave typedef para criar um alias para os tipos de dados, tornando o código mais legível.
Por exemplo:
typedef estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
}você;
inta Principal(intargc, Caracteres const *argv[])
{
u usuário1= {'meunomedeusuario', '[email protegido]', 35, verdade}
usuário1.registrado = falso
Retorna 0;
}
No exemplo acima, criamos um alias u para a estrutura de usuários. Portanto, não precisamos chamar usuários de struct todas as vezes. Podemos usar u conforme definido acima.
Ponteiros de estrutura
Você também pode ter um ponteiro para uma estrutura. Isso permite que você acesse os membros usando o operador ->.
Por exemplo:
typedef estruturaComercial{
Caracteresnome do usuário[vinte];
Caractereso email[225];
CaracteresMorada[cinquenta];
intera;
bool registrado;
}você;
inta Principal(intargc, Caracteres const *argv[])
{
u usuário1= {'meunomedeusuario', '[email protegido]', 35, verdade}
// ponteiro para outra estrutura
você*user_ptr= Eusuário1
user_ptr->nome do usuário= 'ptrusername'
Retorna 0;
}
Conclusão
Este guia cobre os fundamentos do trabalho com estruturas na linguagem de programação C.
Obrigado por ler!