Estruturas em C

Structures C



Em C, uma estrutura é uma variável definida pelo usuário usada para armazenar uma coleção de variáveis ​​em uma única entidade. Vamos usar uma analogia simples para explicar a implementação e a utilidade das estruturas em C.

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!