Buscar

Aula Estrutura de dados 3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

���������	
�
�	��
�
��	
��
����	
�
������
����
����
�����
����
�
�� �	��
�
��	
�	��
�
��	
���� �	��
�
��	
�	��
�
��	
��
�����
��
����
�����
��
����
��
����
��
�	�
�������
������
����	�
�������
������
���
�����	
�����	
 �� �����	 �� �����	 ��� ��� �����
�������
�����
�������
!��"#�!��"#�
���"�������
������
������"�������
������
���
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
��$��
�	��
�
��
%$��
�	��
�
��
%	��
��	��
��&
'

��
����(#�
��

��
�
���	
&
'

��
����(#�
��

��
�
���	
"���)"��	*
 �		�"�������
��
�� �	
���������	*
���
 ���	
"���)"��	*
 �		�"�������
��
�� �	
���������	*
���
 ���	
	��

�
+����
�����
	��

�
+����
�����
�� �	��
�
��	
���	���
��

�
���
�	�
�� �������
 ���
�	��
�
��	
���	���
��

�
���
�	�
�� �������
 ���
�� �	��
�
��	
���	���
��

�
���
�	�
�� �������
 ���
�	��
�
��	
���	���
��

�
���
�	�
�� �������
 ���
������,��
�	
����	

����,���	
 ��

�
 �������
 ��	
������,��
�	
����	

����,���	
 ��

�
 �������
 ��	
�����

�
��
 �
��
"�����	
����

��
+����
"���)"��������

�
��
 �
��
"�����	
����

��
+����
"���)"���
���#�
�-�����	
��
�#�
�-�����	
��
����	���	����	���	 ��
�
���	
����
����	
��
��
�
���	
����
����	
��
 �������(#�� �������(#��
�� �	��
�
��	
%�
����	���	&
	#�
���		�������	
����
�	��
�
��	
%�
����	���	&
	#�
���		�������	
����
"���)"��	
��� �	��	
-������.���	"���)"��	
��� �	��	
-������.���	*
 ��	
*
 ��	
 ���� ���� ���
 ��
���
 ��
"���)"��	
��
�� �	
���������	�"���)"��	
��
�� �	
���������	�
�� ��
������ �	�(#�*
����	
�	
"�����	
�
�����,�	*
��
������ �	�(#�*
����	
�	
"�����	
�
�����,�	*
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
�� ��
������ �	�(#�*
����	
�	
"�����	
�
�����,�	*
��
������ �	�(#�*
����	
�	
"�����	
�
�����,�	*
���		�������	
����
"���)"��	
��� �	��	
-����.���	*
���		�������	
����
"���)"��	
��� �	��	
-����.���	*
 ��	
	������
���
 ��
"���)"��	
��
��	��
�� �� ��	
	������
���
 ��
"���)"��	
��
��	��
�� ��
�� �/�� ��0�/�� ��0
struct data
{
int dia;
struct data
{
int dia;
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
{
int dia;
int mes;
int ano;
};
{
int dia;
int mes;
int ano;
};
�� �
 ���"���
 ���"�����-�"�
�-�"�
structstruct �������
��
��� ������
1
�

�
�������
��
��� ������
1
�

�
������
��
�	��
�
��
�	�)
	����
���������������
��
�	��
�
��
�	�)
	����
���������
��2����32����3'

��
'

��
���1
������1
��� 1
�
�)
����
4
������(#�
��
1
�
�)
����
4
������(#�
��
�	��
�
����	��
�
���
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
��$��
������(#�
��
�	��
�
��
'

�
$��
������(#�
��
�	��
�
��
'

�
��������������*
 ��
�		�
*
 ��
�		�
��"�
��������
��
 ������"�
��������
��
 ����������"5��
���"5��
���
��6	
����	
���������	
�����
�	
�-�"�	
	#�
�	
6	
����	
���������	
�����
�	
�-�"�	
	#�
�	
��� �	
��� �	
%�
������	&
%�
������	&
��
�	��
�
�����
�	��
�
���
��6	
��� �	
��

��
��	��
�	��
�
��
��"��
���
6	
��� �	
��

��
��	��
�	��
�
��
��"��
���
����	
����	
���������	���������	��
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
���������	���������	��
�����'�*
�	��
�
��	
���������	
 ����
������
���'�*
�	��
�
��	
���������	
 ����
������
��� �	
���
��� �	
���
�
��	��
�����
��	��
������
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
�� �
������(#�
��

��
�	��
�
��
�
������(#�
��

��
�	��
�
��
�#�
��	��"��#�
��	��"� 1
��1
��
1
��1
��
�	 �(�
��
���7����	 �(�
��
���7�����
��8���
1
�*
��
�/�� ��
����*
���-
��
"���)"��
���
8���
1
�*
��
�/�� ��
����*
���-
��
"���)"��
���
���������
��
����*
� ���	
�
�����
��	
����	
���
���������
��
����*
� ���	
�
�����
��	
����	
���
���������
��
����*
� ���	
�
�����
��	
����	
���
���������
��
����*
� ���	
�
�����
��	
����	
���
������������������
�� �		�
������(#�*
 ��'�*
�		�
������(#�*
 ��'�*
����

�
��"�
�� �
��
����	����

�
��"�
�� �
��
����	*
1
�
*
1
�
 ���
	��

	���
 ���
��������
"���)"��	� ���
	��

	���
 ���
��������
"���)"��	�
struct data
{
int dia;
int mes;
int ano;
struct data
{
int dia;
int mes;
int ano;
�� �
�	
�������	
��
��������
�
"���)"��
�
�	
�������	
��
��������
�
"���)"��
// ��
�� �
��
�� �
��������00
struct data
{
int dia;
int mes;
struct data
{
int dia;
int mes;�
����������

��
�	��
�
������������

��
�	��
�
������������

��
�	��
�
������������

��
�	��
�
��
int ano;
};
...
struct data x;
int ano;
};
...
struct data x;
int mes;
int ano;
} x;
int mes;
int ano;
} x;
�
���	
�������	0���	
�������	0
••������������ �	��
�
���	��
�
�� ����
����
��"�
�� ���"�
�� �
••�������
"���)"���������
"���)"�� ��
��"�
��
��"�
�� �
���������� �
��������
$�
�������0$�
�������0
••������������ �	��
�
���	��
�
�� �
�
�������
�������
"���)"��"���)"�� ��
��"�
�� �
��
��"�
�� �
����������������
���
��6	
��� �	
��

��
�	��
�
��
 ����
	��
��
6	
��� �	
��

��
�	��
�
��
 ����
	��
��
1
��1
��
1
��1
��
�� ��� �*
����
	�"�

��
�	��
�
��
 ��"�������
���������*
����
	�"�

��
�	��
�
��
 ��"�������
���������
�����'�*
�
�� �
��	
��� �	
�#�
 ����
	��
�
��
 �7 ���
���'�*
�
�� �
��	
��� �	
�#�
 ����
	��
�
��
 �7 ���
�� �
1
�
�	�)
	����
����������� �
1
�
�	�)
	����
���������
����������

��
�	��
�
������������

��
�	��
�
������������

��
�	��
�
������������

��
�	��
�
��
�� �
1
�
�	�)
	����
����������� �
1
�
�	�)
	����
���������
�� �
������(#�
��
�������
��

��
�	��
�
��
 ���
	��
�����
�
������(#�
��
�������
��

��
�	��
�
��
 ���
	��
�����
������
��
�
�(#�
 ����� ��
%������
��
�
�(#�
 ����� ��
%mainmain&
�
����
�����&
�
����
�����
��$	
�������*
$	
�������*
����������������	�
����
��
�
�(#�
 ����� ��	�
����
��
�
�(#�
 ����� ��*
��
*
��
����
1
�
�
���	
�
�(9�	
����'�
 �		��
2��/�����3
�
����
1
�
�
���	
�
�(9�	
����'�
 �		��
2��/�����3
�
����������

��
�	��
�
������������

��
�	��
�
������������

��
�	��
�
������������

��
�	��
�
��
����
1
�
�
���	
�
�(9�	
����'�
 �		��
2��/�����3
�
����
1
�
�
���	
�
�(9�	
����'�
 �		��
2��/�����3
�
�	��
�
��
����������	��
�
��
���������
��:����
�����
��
������(#�
��

��
�	��
�
��0:����
�����
��
������(#�
��

��
�	��
�
��0
struct <etiqueta> {
<tipo> campo_1;
<tipo> campo_2;
struct <etiqueta> {
<tipo> campo_1;
<tipo> campo_2;
�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	�	��
�
��	
��
����	
<tipo> campo_1;
<tipo> campo_2;
...
<tipo> campo_n;
} <variáveis>;
<tipo> campo_1;
<tipo> campo_2;
...
<tipo> campo_n;
} <variáveis>;
��8�"�	
�� �	
��
����	
 ����
	��
��������	

����,����8�"�	
�� �	
��
����	
 ����
	��
��������	

����,������	�
	�
�
 ���"���
 ���"�����-�"�
�-�"�
typedeftypedef��
����������

��
�	��
�
��

����,����
����������

��
�	��
�
��

����,����
typedeftypedef����������

��
�	��
�
��

����,����
����������

��
�	��
�
��

����,����
typedeftypedef
typedef struct nome_da_estruturatypedef struct nome_da_estruturatypedef struct nome_da_estrutura
{
<tipo> campo_1;
<tipo> campo_2;
...
<tipo> campo_n;
} nome_do_tipo;
typedef struct nome_da_estrutura
{
<tipo> campo_1;
<tipo> campo_2;
...
<tipo> campo_n;
} nome_do_tipo;
�� �/�� ��0�/�� ��0
����������

��
�	��
�
��

����,����
����������

��
�	��
�
��

����,����
typedeftypedef����������

��
�	��
�
��

����,����
����������

��
�	��
�
��

����,����
typedeftypedef
typedef struct data
{
int dia;
typedef struct data
{
int dia;
{
int dia;
int mes;
int ano;
} tipoData;
{
int dia;
int mes;
int ano;
} tipoData;
����������

��
�	��
�
��

����,����
����������

��
�	��
�
��

����,����
typedeftypedef����������

��
�	��
�
��

����,����
����������

��
�	��
�
��

����,����
typedeftypedef
��6

	�
���	
���
�
��
6

	�
���	
���
�
��
typedeftypedef '
���
�	��
�
��	
��
'
���
�	��
�
��	
��
����	*
 ��	
�"���
1
�
�
 ���"������	*
 ��	
�"���
1
�
�
 ���"�����-�"�
�-�"�
structstruct ���-�
��
���-�
��
	��
��������
����
"�,
1
�

��
�	��
�
��
'
����������	��
��������
����
"�,
1
�

��
�	��
�
��
'
����������
struct data dia_de_hoje;
tipoData dia_de_hoje;
struct data dia_de_hoje;
tipoData dia_de_hoje;
���
���		����
�	
��� �	
��

��
�	��
�
�����		����
�	
��� �	
��

��
�	��
�
�����		����
���� �	
��

��
�	��
�
�����		����
�	
��� �	
��

��
�	��
�
��
��������	
���		��
������	
���		��
����"��
�����������"��
������� �	
��� �	
��
�	
��� �	
��

��
�����������
�	��
�
��
����
	�
��		��

��
�����������
�	��
�
��
����
	�
��		��
"���)"��	
���
�	�"���)"��	
���
�	�
���
	����/�
 ���
�
	����/�
 ���
���		�����		�� �
�
���� 
������� 
��� ��� �	
��
��� �	
��
�	��
�
��	
'
�
	��
����0�	��
�
��	
'
�
	��
����0
<nome_da_variável><nome_da_variável>..<campo><campo><nome_da_variável><nome_da_variável>..<campo><campo>
���
�	��
�
��	
'
�
	��
����0�	��
�
��	
'
�
	��
����0
�� �
����
��
��	
��� �	
��

��
�	��
�
��
�
 �����
��
�
����
��
��	
��� �	
��

��
�	��
�
��
�
 �����
��
�������
��"�
	��
�����
��� �
�
��� �*
����
	�
��		�
�������
��"�
	��
�����
��� �
�
��� �*
����
	�
��		�
"���)"��	
���� �������	�"���)"��	
���� �������	�
����
��
��	
��� �	
��

��
�	��
�
������
��
��	
��� �	
��

��
�	��
�
������
��
��	
��� �	
��

��
�	��
�
������
��
��	
��� �	
��

��
�	��
�
��
printf (“Digite o nome do aluno: ”);
scanf (“%s”, &aluno.nome);
printf (“Digite a idade do aluno: ”);
scanf (“%d”, &aluno.idade);
printf (“Digite o nome do aluno: ”);
scanf (“%s”, &aluno.nome);
printf (“Digite a idade do aluno: ”);
scanf (“%d”, &aluno.idade);
��$�
��� �
��

��
�	��
�
��
 ���
	��

��
�
���
$�
��� �
��

��
�	��
�
��
 ���
	��

��
�
���
�	��
�
����	��
�
���
��;
����
�		�
������*
����	

��
;
����
�		�
������*
����	

��
�	��
�
��
����-����	��
�
��
����-�����
�	��
�
��	
����-���	�	��
�
��	
����-���	�	��
�
��	
����-���	�	��
�
��	
����-���	
��6
 ���#�
�8��
�
�	 �������
1
�
�	
�	��
�
��	
 ����
	��
6
 ���#�
�8��
�
�	 �������
1
�
�	
�	��
�
��	
 ����
	��
����-���	
��'
����-���	
��'
�<
�5"��	�<
�5"��	*
��	
�
�������
��	
*
��	
�
�������
��	
��� �������	
 ������
���	�
��� �������	
 ������
���	�
��=
��������	
 ���
�	��
�
��	��������	
 ���
�	��
�
��	��������	
 ���
�	��
�
��	��������	
 ���
�	��
�
��	
������
�
���	
�� �	
��
����	*
 �������	
 ���
�	��
�
��	
����
�
���	
�� �	
��
����	*
 �������	
 ���
�	��
�
��	
	#�
���������	
���������	#�
���������	
�����������	�
�
� ������
	�
�
� ������
>
>
��
������
��
��
������
��
����
��
"���)"��
�	��
�
��0����
��
"���)"��
�	��
�
��0
struct data *ap_ontem;
tipoData *ap_amanha;
struct data *ap_ontem;
tipoData *ap_amanha;
��������	
 ���
�	��
�
��	��������	
 ���
�	��
�
��	��������	
 ���
�	��
�
��	��������	
 ���
�	��
�
��	
������
���		��

��
�	��
�
��
���
 �������	
����
���		��

��
�	��
�
��
���
 �������	
 ��� �����	�

	��
�
�	
	����/�	0	�

	��
�
�	
	����/�	0
�� 6 ������
 ����06 ������
 ����0
*<ponteiro_estrutura>.<campo>*<ponteiro_estrutura>.<campo>
��?
�� 6 ������
	���06 ������
	���0
*<ponteiro_estrutura>.<campo>*<ponteiro_estrutura>.<campo>
<ponteiro_estrutura>-><campo><ponteiro_estrutura>-><campo>
@����
��
�	��
�
��	@����
��
�	��
�
��	@����
��
�	��
�
��	@����
��
�	��
�
��	
��$	���
1
����
 ����	���	
��
��"��	�	
�7 ��	
��

��
$	���
1
����
 ����	���	
��
��"��	�	
�7 ��	
��

��
�	��
�
����	��
�
���
�����
�/�� ��*
����
�������
��

��
��������
��
"5���
���
�/�� ��*
����
�������
��

��
��������
��
"5���
���	���
�

�
��������
��

�
"����*
�
A�
�� �
'

��
���	���
�

�
��������
��

�
"����*
�
A�
�� �
'

��
�	��
�
��
��
����	
1
�
������
�	
��������5	����	
��
����
�	��
�
��
��
����	
1
�
������
�	
��������5	����	
��
����
��<
�	��
�
��
��
����	
1
�
������
�	
��������5	����	
��
����
�	��
�
��
��
����	
1
�
������
�	
��������5	����	
��
����
����������������
structstruct etiqueta variável[dimensão];etiqueta variável[dimensão];structstruct etiqueta variável[dimensão];etiqueta variável[dimensão];
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
��������	
 �		��
������	
 �		��
�	��
�
��	
�������	
�
� ���	
��� �	�	��
�
��	
�������	
�
� ���	
��� �	
��	��	
����
���
�����
 ���
�
�(9�	
�
��	��	
����
���
�����
 ���
�
�(9�	
�
 �����������	� �����������	�
��B��
 �		����
 ���
	��
�����,���
B��
 �		����
 ���
	��
�����,���
 ��
"���� ��
"���� �
�
 ��
 ��
��B��
 �		����
 ���
	��
�����,���
B��
 �		����
 ���
	��
�����,���
 ��
"���� ��
"���� �
�
 ��
 ��
�����.���������.������
�� �	
�	��
�
��	
���� 
����	
 ��
���	
��

��
�
�(#�
�	
�	��
�
��	
���� 
����	
 ��
���	
��

��
�
�(#�
��"��
	��
���������	
�����������*
��"��
	��
���������	
�����������*
����	����	 ��
������(#�
��
������(#�
��
�
�(#����
�
�(#��
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
��� �	
 ��
"������� �	
 ��
"����
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
��� �	
 ��
"������� �	
 ��
"����
�� �	��
 ����		�
'
�����,���
��
�	��
 ����		�
'
�����,���
��
��	��
�����
1
�
 ���
��	��
�����
1
�
 ���
"���)"��	
	�� ��	"���)"��	
	�� ��	*
���������*
�����������	�
 ���
�	
 ��
���������	
	�
 ���
�	
 ��
���������	
��	
�	��
�
��	
��
����	���	
�	��
�
��	
��
����	�
// Chamada
funcao(estrutura.campo, ...);
// Chamada
funcao(estrutura.campo, ...);
��C
funcao(estrutura.campo, ...);
// Definicao formal
<tipo> funcao(<tipo> variavel, ...)
funcao(estrutura.campo, ...);
// Definicao formal
<tipo> funcao(<tipo> variavel, ...)
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
��� �	
 ��
�����.������� �	
 ��
�����.����
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
��� �	
 ��
�����.������� �	
 ��
�����.����
�� ��
��	��
�����
1
�
��������
 ���
"���)"��	
	�� ��	*
��
��	��
�����
1
�
��������
 ���
"���)"��	
	�� ��	*
��"���"���	�
 D�
�
� ������
	�
 D�
�
� ������
EE ����	
��
����
��
�	��
�
��
����	
��
����
��
�	��
�
��
��
�-�����
��
�
�(#����
�-�����
��
�
�(#��
// Chamada
funcao(&estrutura.campo, ...);
// Chamada
funcao(&estrutura.campo, ...);
��F
funcao(&estrutura.campo, ...);
// Definicao formal
<tipo> funcao(<tipo> *variavel, ...)
funcao(&estrutura.campo, ...);
// Definicao formal
<tipo> funcao(<tipo> *variavel, ...)
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
�	��
�
��	
�������	
 ��
"�����	��
�
��	
�������	
 ��
"����
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
�	��
�
��	
�������	
 ��
"�����	��
�
��	
�������	
 ��
"����
�� ��
�����)���
��
����G	*
�	��
�
��	
 ����
	��
 �		���	
��
�����)���
��
����G	*
�	��
�
��	
 ����
	��
 �		���	
 ��
"���� ��
"���� ����
���
�����	
��
�
�(#������
���
�����	
��
�
�(#��
������
�	��
�
��	
������	*
-)
�
 �������
��
�7 ��
��
����
�	��
�
��	
������	*
-)
�
 �������
��
�7 ��
��
"�����	
��
 ��-�
��
���7����"�����	
��
 ��-�
��
���7����
��H
// Chamada
funcao(estrutura, ...);
// Definicao formal
<tipo> funcao(struct <etiqueta> estrutura, ...)
// Chamada
funcao(estrutura, ...);
// Definicao formal
<tipo> funcao(struct <etiqueta> estrutura, ...)
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
�	��
�
��	
�������	
 ��
�����.�����	��
�
��	
�������	
 ��
�����.����
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
�	��
�
��	
�������	
 ��
�����.�����	��
�
��	
�������	
 ��
�����.����
���������
������(#�
��
�	��
�
��
	��
����		�����
��
�������
������(#�
��
�	��
�
��
	��
����		�����
��
����(#�
��

��
�7 ��
��
���7��������(#�
��

��
�7 ��
��
���7����
// Chamada// Chamada
��I
// Chamada
funcao(&estrutura, ...);
// Definicao formal
<tipo> funcao(struct <etiqueta> *estrutura, ...)
// Chamada
funcao(&estrutura, ...);
// Definicao formal
<tipo> funcao(struct <etiqueta> *estrutura, ...)
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
"����
��
�	��
�
��	"����
��
�	��
�
��	
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
00
��		����
00
��		����
"����
��
�	��
�
��	"����
��
�	��
�
��	
��:
������
��
�����
	����-����
�
"����
��
"���)"��	
:
������
��
�����
	����-����
�
"����
��
"���)"��	
	�� ��	�	�� ��	�
���������
� ���	
 �		����
��
 ��J�����	
 ��
�����.����*
�������
� ���	
 �		����
��
 ��J�����	
 ��
�����.����*
 ��	
�������	
�������	�*
������*
��

�
"�����	�*
������*
��

�
"�����
���
// Chamada
funcao(vetor, ...);
// Definicao formal
<tipo> funcao(struct <etiqueta> vetor[], ...)
// Chamada
funcao(vetor, ...);
// Definicao formal
<tipo> funcao(struct <etiqueta> vetor[], ...)
��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	��		����
�	��
�
��	
 ���
�
�(9�	
��6
�� �
��	
�	��
�
��	
6
�� �
��	
�	��
�
��	
����	����	 %�-�����	&
�
��	
%�-�����	&
�
��	
������	������	
%������(#�&
%������(#�&
��"�
	��
�
��	����"�
	��
�
��	��*
�����
1
�
	�A��
*
�����
1
�
	�A��
	����-����	�	����-����	�
���
�� �
����
����
�
 �		
�

�
�'����
�	 ��5����
 ���
�
����
����
�
 �		
�

�
�'����
�	 ��5����
 ���
���		��

�
+����
���
������
��

�
�G�����		��

�
+����
���
������
��

�
�G����
��B��
�'����
'
��	����
��
�	��
�
��	�B��
�'����
'
��	����
��
�	��
�
��	�
��$�
��� �
��
���	
'

�
�� �
��
��������
��
�	��
�
��
$�
��� �
��
���	
'

�
�� �
��
��������
��
�	��
�
��
1
�
������
�
1
�
������
�
��� ���������� ������� ��
��� �
��
���	���
��� �
��
���	�
��� �	
��
���	��� �	
��
���	��� �	
��
���	��� �	
��
���	
1
�
������
�
1
�
������
�
��� ���������� ������� ��
��� �
��
���	���
��� �
��
���	�
���#�
���1
���������

����,���	
 ���
���� 
���
�������	
�#�
���1
���������

����,���	
 ���
���� 
���
�������	
��
��	 �	���"�	
��
-���K���
% ����	
	�����	
�
 �������	&���
��	 �	���"�	
��
-���K���
% ����	
	�����	
�
 �������	&�
��$�
��� �
��
���
��"�
	��
���������
������
��
�	��
�
��
$�
��� �
��
���
��"�
	��
���������
������
��
�	��
�
��
����
����
unsignedunsigned*
*
signedsigned �
�
intint��
����
�
��� �������
��
��� �
���
��
�
���*
	7
 ���
	��
��
�
��� �������
��
��� �
���
��
�
���*
	7
 ���
	��
���������
����
���������
����
unsignedunsigned��
��� �	
��
���	��� �	
��
���	��� �	
��
���	��� �	
��
���	
���
struct status_type {
int campo1: 2;
signed campo2: 1;
unsigned campo3: 6;
};
struct status_type {
int campo1: 2;
signed campo2: 1;
unsigned campo3: 6;
};
��L
")����
��	�
���
��������	
������	
��
�	��
�
��	
���
L
")����
��	�
���
��������	
������	
��
�	��
�
��	
���
��������	
��
��� �	
��
���	���������	
��
��� �	
��
���	�
��� �	
��
���	��� �	
��
���	��� �	
��
���	��� �	
��
���	
struct empregado {
struct addr address;
float salario;
struct empregado {
struct addr address;
float salario;float salario;
unsigned lay_off : 1; // ativo ou inativo
unsigned hourly : 1; // pago por hora ou mes
unsigned deducoes : 3; // deducoes de impostos
};
float salario;
unsigned lay_off : 1; // ativo ou inativo
unsigned hourly : 1; // pago por hora ou mes
unsigned deducoes : 3; // deducoes de impostos
};
��8#�
	�
 ���
�����
8#�
	�
 ���
�����
������(�������(� ��

��
"���)"��
��
��� �	
��

��
"���)"��
��
��� �	
��
���	���
���	�
��8#�
 ����
	��
������,���	
��
8#�
 ����
	��
������,���	
��
�����,�	�����,�	��
�� �
	���
��	
��� �������	
��
����	
�	
��� �	
�
	���
��	
��� �������	
��
����	
�	
��� �	
�#�
�#�
 ���

���� �		��
�
�����-�
��

�
������� ���

���� �		��
�
�����-�
��

�
���������
��� �	
��
���	��� �	
��
���	
00
M�	���(9�	00
M�	���(9�	
��� �	
��
���	��� �	
��
���	
00
M�	���(9�	00
M�	���(9�	
 ���

���� �		��
�
�����-�
��

�
������� ���

���� �		��
�
�����-�
��

�
���������
�� �
��	 �	�(#�
��	
���	
%�	1
����
 ���
�������
�
�������
�
��	 �	�(#�
��	
���	
%�	1
����
 ���
�������
�
�������
 ���
�	1
����&
 ���
�	1
����&
"����"���� ��
�)1
���
 ���
�)1
������
�)1
���
 ���
�)1
����
$����$����$����$����
��$��
$��
unionunion '

��
 �	�(#�
��
���7���
1
�
'
'

��
 �	�(#�
��
���7���
1
�
'
��� �����-���
 ��
�
�	
�
���	
"���)"��	
��� �����-���
 ��
�
�	
�
���	
"���)"��	
���������	*
����������
��
�� �	
���������	*
��
���������	*
����������
��
�� �	
���������	*
��
�������	
���������	��������	
���������	�
���
�
������(#�
'
	����-����
4
��
�	��
�
��0�
�
������(#�
'
	����-����
4
��
�	��
�
��0���
�
������(#�
'
	����-����
4
��
�	��
�
��0�
�
������(#�
'
	����-����
4
��
�	��
�
��0
union <identificador> {
<tipo> campo_1;
<tipo> campo_2;
...
<tipo> campo_n;
} <variáveis>;
union <identificador> {
<tipo> campo_1;
<tipo> campo_2;
...
<tipo> campo_n;
} <variáveis>;
$����$����
00
�/�� ��00
�/�� ��
$����$����
00
�/�� ��00
�/�� ��
��6
�	 �(�
��
 ���
 ��

��

����
��
���7���
6
�	 �(�
��
 ���
 ��

��

����
��
���7���
�����	 ����
��
�����	 ����
��
�����
�����-�
��
"���)"��
�����
�����-�
��
"���)"��
1
�
���
1
�
���
����'��
�/�� ��0����'��
�/�� ��0
struct exemplo {
int a;
char b;
struct exemplo {
int a;
char b;char b;
double c;
}
char b;
double c;
}
union exemplo {
int a;
char b;
double c;
}
union exemplo {
int a;
char b;
double c;
} ��=
$����$����
00
�/�� ��00
�/�� ��
$����$����
00
�/�� ��00
�/�� ��
���7����
 ���
�
�����

�
�7����
 ���
�
�����

�
���������� �

�
�

�
�������������� ��
��

��
��	��
 �	�(#�
��
���7���0
��
��	��
 �	�(#�
��
���7���0
union ieee754 {
float num_real;
union ieee754 {
float num_real;float num_real;
int num_hexa;
};
float num_real;
int num_hexa;
};
��<��?
����"��
�-�"�
����"��
�-�"�
enumenum����"��
�-�"�
����"��
�-�"�
enumenum
��enumenum '
�
����"��(#�
��
�8$N�M�B��'
�
����"��(#�
��
�8$N�M�B��
��������	

	��
�	��
 ���"��
�-�"�
 ���
��������
������	

	��
�	��
 ���"��
�-�"�
 ���
��������
�
��������,��

��
�
��������,��

��
	�1O.����
��
���	����	
�������		�1O.����
��
���	����	
�������	��
���
�
 ����� ��
"�������
'
1
����
�#�
	�
1
��
�
�
 ����� ��
"�������
'
1
����
�#�
	�
1
��
���
�
 ����� ��
"�������
'
1
����
�#�
	�
1
��
�
�
 ����� ��
"�������
'
1
����
�#�
	�
1
��
��������,��
����	
�	
���	�����	
�
����

��
��������,��
����	
�	
���	�����	
�
����

��
 ����	�
���

�
"����
+����� ����	�
���

�
"����
+�����
�����
 ���#�*
�
 �������
���	�����
�1
�"���
�
���
 ���#�*
�
 �������
���	�����
�1
�"���
�
,���,����
�	
��	�����	
�1
�"����
4
��������
�
�	
��	�����	
�1
�"����
4
��������
������������
��

�������������
��

���
����"��
�-�"�
����"��
�-�"�
enumenum
00
�/�� ��00
�/�� ��
����"��
�-�"�
����"��
�-�"�
enumenum
00
�/�� ��00
�/�� ��
�� colorscolors '
�
����
����
 ���
�
��
 �
��
���	�����	
'
�
����
����
 ���
�
��
 �
��
���	�����	
%� ������&�%� ������&�
enum colors {RED, GREEN, BLUE};enum colors {RED, GREEN, BLUE};
����
�#�
'
�����
5��

�
"����
 ���
�	
���	�����	*
�
"����
��
�#�
'
�����
5��

�
"����
 ���
�	
���	�����	*
�
"����
 ���#�
�����
5��
 ���
�
 ���#�
�����
5��
 ���
�
 �������
�������� �������
�������� ��
��	��
%M��
��
��	��
%M��
��
��		�
��	�&
	��)
�
%��
��		�
��	�&
	��)
�
%,���,���&�&�
�� �	
�����	
���	�����	
���
"����
����������
���#�
"����
�
�	
�����	
���	�����	
���
"����
����������
���#�
"����
�
��
���	�����
��������
���	
�
%
�&���
���	�����
��������
���	
�
%
�&�
��8�
��		�
��	�*
8�
��		�
��	�*
!M��8
P
�!M��8
P
��
�
Q�$�
P
�Q�$�
P
���
��C
����"��
�-�"�
����"��
�-�"�
enumenum����"��
�-�"�
����"��
�-�"�
enumenum
������������	�
�����
��
"�����	
 ���
�	
���	�����	�	�
�����
��
"�����	
 ���
�	
���	�����	�
enum colors {RED = 1, 
YELLOW, 
GREEN = 6, 
enum colors {RED = 1, 
YELLOW, 
GREEN = 6, 
�������
�����
M��
P
�M��
P
�*
*
R���6S
P
�R���6S
P
�*
*
!M��8
P
C!M��8
P
C�
�
Q�$�
P
FQ�$�
P
F�
�
��!���������

	�!���������

	���	�
�����	
	�
�����	
���+	�
��	
���+	�
��	
 ���
���
 ���
���
����
4	
���	�����	�����
4	
���	�����	�
GREEN = 6, 
BLUE};
GREEN = 6, 
BLUE};
@���)"��	
@���)"��	
enumenum@���)"��	
@���)"��	
enumenum
�����	�����	
��
������	
	#�
��
�� �
���	�����	
��
������	
	#�
��
�� �
��������������*
*
���#�
���#�
int x = RED;int x = RED; �	�)
���������	�)
��������
�����'�*
"��.
 ���
�����
�
	�
 �7 ���
�� �
��
���'�*
"��.
 ���
�����
�
	�
 �7 ���
�� �
��
����*
 ��
�/�� ��
����*
 ��
�/�� ��
colorscolors��colorscolors
���������

��
"���)"��
�-�����
�������

��
"���)"��
�-�����
corfundocorfundo*
�
*
�
1
��
'
��
�� �
��
����
��
������
1
��
'
��
�� �
��
����
��
������
colorscolors��
��F
enum colors corfundo;enum colors corfundo;
;
�	�9�	;
�	�9�	;
�	�9�	;
�	�9�

Outros materiais