Nesse tutorial de C vamos ensinar você a declarar,
preencher os elementos da struct, acessar e trabalhar com os elementos de
qualquer struct.
- Leia este tutorial no seu computador ou celular: Apostila C Progressivo
Como declarar uma struct em C
Como já foi dito, struct nada mais é que um conjunto, ou
bloco, de variáveis.
A sintaxe é a seguinte
struct Nome_de_sua_struct
{
tipos
nome_dos_tipos;
};
Vamos declarar, como exemplo, uma struct para representar
os dados dos funcionários:
struct Funcionario
{
int
idade;
char
*nome;
float
salario;
};
O tipo struct
Podemos ver as structs como um tipo de dado.
Por exemplo, “Funcionario”, que foi declarado
anteriormente, pode ser visto como um novo de tipo de variável. É uma variável,
ou um tipo, que define os funcionários.
Essa visão, de que criamos um novo tipo de variável, é
tão certa que é possível criar e declarar mais variáveis do tipo “struct Funcionario”.
A sintaxe para declarar outras structs do tipo “struct Funcionario”
é:
struct Funcionario empregado1;
struct Funcionario chefe;
struct Funcionario secretaria;
É aí que reside a beleza e importância das structs.
Note que no momento da criação do modelo da struct “Funcionario”,
declaramos um inteiro, uma string e um float dentro da struct.
Assim, todas as structs do tipo “Funcionario” terão uma
variável inteira, uma string e um float.
Sempre que declaramos uma nova struct desse tipo, essas
variáveis são automaticamente
criadas e terão essas variáveis. O que é uma verdadeira mão na roda.
Outra maneira de declarar variáveis de um tipo struct que
queremos, é criar esses elementos após as chaves na hora de criar a struct Funcionario.
Veja:
struct Funcionario
{
int
idade;
char
*nome;
float
salario;
}empregado1, chefe, secretaria;
Pronto, agora existem 3 variáveis do tipo “struct
Funcionario”: ‘empregado1’, ‘chefe’ e ‘secretaria’.
No próximo tutorial de nosso curso de C, vamos mostrar como acessar e alterar os elementos da struct, além de mostrar um exemplo através de um exercício resolvido e comentado.
11 comentários:
onde diz "... criar esses elementos após os colchetes na ..." não seria após fechar a chaves?
Opa! Pequeno deslize!
Muitíssimo obrigado pela contribuição, amigo.
Esperamos que ninguém tenha se prejudicado...
Creio que onde explica "A sintaxe para declarar outras structs do tipo “struct Funcionario” é", na "struct secretaria;" faltou o "Funcionario".
A apostila é ótima. Parabéns pelo excelente trabalho.
Estou cursando engenharia de produção na usp são carlos e tenho problemas com computação haha... mas devo admitir que seus tutoriais são muito melhores do que qualquer explicação de minha professora até agora (:
Muitíssimo obrigado!
Ótimos tutoriais !!
Quando do exemplo de declaração de uma struct porquê a variável tipo char *nome foi declarada como ponteiro?
struct Funcionario
{
int idade;
-----> char *nome;<-----
float salario;
};
Olá Tiago,
Ponteiro de char é muito usado em strings.
Você cria uma string, através de alocação dinâmica de memória por exemplo, e faz esse ponteiro de char apontar pra essa string.
Quando a gente faz isso, esse ponteiro aponta pro endereço do primeiro char da string.
o site é exelente! com uma lingaugem fácil turna o complicado em descomplicado! pro site ficar perfeito só falta ter em cada sessão uma lista de exercicios com respostas.
#include
struct computador {
int ano;
char tipo_cpu[10];
};
typdef struct computador EC;
//declaraçao da funçaoo
EC ReceberDados(EC s)
int main(void)
{EC modelo;
modelo = receberdados(modelo);
printf("ano:%d\n",modelo.ano);
printf("tipode
cpu:%s\n",modelo.tipo_cpu);
reeturn exit_success
}
EC receberdados(Ec s)
{
printf("tipo da cpu?\n");
gets (s.tipo_cpu);
printf("ano de fabricaçao?\n");
scanf("%d", &.ano);
return s;
ola gostaria de entender este programa pois a parte que esta EC Receberdado n entendi o q ela faz gostaria q me explicasse o programa obrigado
Pode ser uma dúvida boba, mas, qual a diferença entre declarar a estrutura antes e depois do int main?
Se declarar antes ela será uma variavel global rodando em todo o programa e caso coloque dentro de main será uma variavel local
Postar um comentário