Ferramentas do usuário

Ferramentas do site


prog2:estruturas

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
prog2:estruturas [2019/04/25 15:21]
maziero [Structs e ponteiros]
prog2:estruturas [2019/06/11 11:20] (atual)
maziero
Linha 115: Linha 115:
 Paciente_t pac1, pac2 ; Paciente_t pac1, pac2 ;
 </​code>​ </​code>​
 +
 +===== Atribuição de structs =====
 +
 +Valores de tipo ''​struct''​ podem ser atribuídos,​ copiados, usados como parâmetros e retornados por funções diretamente,​ sem necessidade de manipular cada elemento individualmente. Em uma atribuição,​ por exemplo, todos os bytes contidos no struct de origem serão copiados no struct de destino.
 +
 +As seguintes operações com structs são perfeitamente válidas (e muito úteis):
 +
 +<code c>
 +#include <​stdio.h>​
 +#include <​string.h>​
 +
 +typedef struct Paciente_t
 +{
 +  char  nome[100] ;
 +  short idade ;
 +  short quarto ;
 +} Paciente_t ;
 +
 +// imprime na tela os dados do paciente
 +void imprime_paciente (Paciente_t p)
 +{
 +  printf ("​Paciente %s, %d anos, quarto %d\n", p.nome, p.idade, p.quarto) ;
 +}
 +
 +// devolve um paciente "​nulo"​
 +Paciente_t paciente_nulo ()
 +{
 +  Paciente_t p = {"​nulo",​ 0, 0} ;
 +  return (p) ;
 +}
 +
 +int main ()
 +{
 +  // declaração de variável com valor inicial
 +  Paciente_t pac1 = { "Home Simpson",​ 47, 501 } ;
 +
 +  // cópia de struct
 +  Paciente_t pac2 = pac1 ;
 +
 +  // struct como parâmetro de função (passagem por cópia)
 +  imprime_paciente (pac2) ;
 +
 +  // struct como retorno de função
 +  pac2 = paciente_nulo () ;
 +  imprime_paciente (pac2) ;
 +
 +  return (0) ;
 +}
 +</​code>​
 +
  
 ===== Structs e vetores ===== ===== Structs e vetores =====
prog2/estruturas.txt · Última modificação: 2019/06/11 11:20 por maziero