Estruturas em C: mudanças entre as edições
De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 1: | Linha 1: | ||
=Estruturas em C= | =Estruturas em C= | ||
Uma '''estrutura''' em C é um uma '''estrutura de dados''' em forma de um '''registro''' com vários '''campos'''. | |||
<ref name=" | ;Criação de uma estrutura: Para a criação de uma estrutura utiliza-se o comando '''struct''' e atribui-se um '''nome para a estrutura''', o qual é depois utilizado para declarar variáveis deste tipo. | ||
Exemplo<ref name="TENENBAUM">TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, São Paulo: Makron Books, 1995.</ref>: | |||
<syntaxhighlight lang="c"> | |||
struct nametype{ | |||
char first[10] ; | |||
char midinit ; | |||
char last[20] ; | |||
}; | |||
</syntaxhighlight> | |||
struct nametyte name; | |||
:A primeira declaração cria uma '''estrutura''' de nome ''nametype'' com três '''campos''', na qual o primeiro (''first'') e o terceiro (''last'') são strings e o segundo (''midinit'') é um caracter. | |||
:A segunda declaração cria a variável ''name'' do tipo da estrutura ''nametype''. | |||
Uma alternativa ao uso de um nome de estrutura é utilizar a '''definição de tipo''' com o comando '''typedef''' do C. Por exemplo: | |||
<syntaxhighlight lang="c"> | |||
typedef struct { | |||
char first[10] ; | |||
char midinit ; | |||
char last[20] ; | |||
} NAMETYPE; | |||
</syntaxhighlight> | |||
Depois pode-se utilizar o novo tipo criado para declarar varáveis do '''tipo da estrutura''' criada: | |||
NAMETYTE name; | |||
:Observe que os nomes de estruturas são convencionalmente escritos com letras minúsculas, mas os especificadores de '''typedef''' são escritos com letras maiúsculas ao apresentar programas em C. | |||
;Acesso aos campos da estrutura: Cada '''campo''' da estrutura pode ser acessado especificando o '''nome da variável''' e no nome do '''campo''' correspondente. | |||
Por exemplo: | |||
<syntaxhighlight lang="c"> | |||
printf("%s", name.first); | |||
</syntaxhighlight> | |||
:pode ser usada para imprimir o primeiro nome na estrutura name, e a instrução: | |||
<syntaxhighlight lang="c"> | |||
name.midinit = 'M'; | |||
</syntaxhighlight> | |||
:atribui valor ao segundo campo da estrutura name. | |||
;Programa exemplo: | |||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
#include <stdio.h> | #include <stdio.h> | ||
#include <string.h> | |||
void main () | struct nametype{ | ||
char first [10]; /*Tipo string*/ | |||
char midinit; /*Tipo char*/ | |||
char last [10]; /*Tipo string*/ | |||
}; | |||
void main () | |||
{ | { | ||
struct nametype name; | |||
strcpy (name.first,"João"); | |||
name.midinit = 'C'; | |||
strcpy (name.last,"Silva"); | |||
printf("Nome completo: %s %c. %s\n", name.first, name.midinit, name.last); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<ref name="KERNIGHAN">KERNIGHAN, B.W.; RITCHIE, D.M. '''The C Programming Language''', Prentice Hall, 2<sup>o</sup> ed. 1978.</ref> | |||
==Referências== | ==Referências== |
Edição das 11h44min de 11 de junho de 2014
Estruturas em C
Uma estrutura em C é um uma estrutura de dados em forma de um registro com vários campos.
- Criação de uma estrutura
- Para a criação de uma estrutura utiliza-se o comando struct e atribui-se um nome para a estrutura, o qual é depois utilizado para declarar variáveis deste tipo.
Exemplo[1]:
struct nametype{
char first[10] ;
char midinit ;
char last[20] ;
};
struct nametyte name;
- A primeira declaração cria uma estrutura de nome nametype com três campos, na qual o primeiro (first) e o terceiro (last) são strings e o segundo (midinit) é um caracter.
- A segunda declaração cria a variável name do tipo da estrutura nametype.
Uma alternativa ao uso de um nome de estrutura é utilizar a definição de tipo com o comando typedef do C. Por exemplo:
typedef struct {
char first[10] ;
char midinit ;
char last[20] ;
} NAMETYPE;
Depois pode-se utilizar o novo tipo criado para declarar varáveis do tipo da estrutura criada:
NAMETYTE name;
- Observe que os nomes de estruturas são convencionalmente escritos com letras minúsculas, mas os especificadores de typedef são escritos com letras maiúsculas ao apresentar programas em C.
- Acesso aos campos da estrutura
- Cada campo da estrutura pode ser acessado especificando o nome da variável e no nome do campo correspondente.
Por exemplo:
printf("%s", name.first);
- pode ser usada para imprimir o primeiro nome na estrutura name, e a instrução:
name.midinit = 'M';
- atribui valor ao segundo campo da estrutura name.
- Programa exemplo
#include <stdio.h>
#include <string.h>
struct nametype{
char first [10]; /*Tipo string*/
char midinit; /*Tipo char*/
char last [10]; /*Tipo string*/
};
void main ()
{
struct nametype name;
strcpy (name.first,"João");
name.midinit = 'C';
strcpy (name.last,"Silva");
printf("Nome completo: %s %c. %s\n", name.first, name.midinit, name.last);
}
Referências
- Autoria
- Evandro Cantú / IFPR - Câmpus Foz do Iguaçu