Buscar

Livro C e Est_Dados

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 337 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 337 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 337 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

� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
Programação Avançada em C 
Usando Algoritmos e Estruturas de Dados 
Fundamentais 
� � � � � � � � � ff � fi � fl � ffi � � ffi �
The Ualg Informatics Lab 
Universidade do Algarve 
 
http://w3.ualg.pt/~jvo 
jvo@ualg.pt
! " # $ % & ' ( ' )
' * + , - ( . /
0 $ 1 " 1 # , 2 , 3 4 & " $ 1 5 3 6 7 " - 7 6 , 8 & $ & 2 9 : , ; 6 7 " - < , = # " , 1 6 > " = & : : & - $ ? 1 # 6 2 9 6 < % & @ A $ & B % & @
= & : " # 7 6 , 3 @ ! " 8 , 8 , , = # 6 , < % & 8 " C 2 # , $ D " # 6 > , 8 , $ E ( F G & # 1 9 H , 3 ( G , # , > " # 9 : , 7 I J 6 ,
8 " $ 1 , 3 6 7 " - < , K > 6 $ 6 1 " 4 1 1 J LM M 7 # " , 1 6 > " 7 & : : & - $ ( & # H M 3 6 7 " - $ " $ M 2 N @ - 7 @ - 8 M E ( F M J 1 M & 9 " - > 6 " 9 : ,
7 , # 1 , J , # , = # " , 1 6 > " = & : : & - $ K ' O ' P " 7 & - 8 P 1 # " " 1 K P 9 6 1 " Q . . K P , - R # , - 7 6 $ 7 & K = , 3 6 S & # - 6 ,
T U
' . F K A P ? (
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
Índice 
 
0. Preâmbulo 
� � � �
 � � � � � 	 
 � � � 
� � 
 �
 � 
 � � � � 
 � � � � �
� � � �
 � � � � � � � � �
� � ff �
 fi � fl � � � 	 � ffi � � � 
 �
1. Introdução 
� � � �
 � 
 � � 
 � � � � � 
 � � � � � 
 �
� � 
 �
 � � 
 � � fl � ffi � � � � 
 �
� � � �
 � � 
 � � � ! � � � � 
 � � � � 
 � � � � � " � � 
 fl
� � � � � �
 # � � fl � � � fl � �
� � � � 
 �
 $ � � % � �
� � ff �
 � 
 � � 
 � � � � � fl � � � fl � � � � � � 
 �
� � & �
 # ' � fl 	 ( 	 � 
 �
2. Arrays e Ponteiros 
 � � �
 � 
 � � � � fl 
 �
 � 
 �
 ) � � fl � � % � � 	 
 ffi � 
 � � � � fl 
 �
 � � �
 * � fl � � � �
 � ff �
 � 
 � � � � fl 
 � � � fl � 	 
 � � � � � � � �
 � & �
 � 
 � � � � fl 
 � 	 
 � � � � � � � �
 � + �
 � 
 � � � � fl 
 � 	 
 � � � � � � � � � � fl � 	 
 � � � � � � � �
 � , �
 � 
 � � � � fl 
 � � � fl � ! � � � % � �
 � - �
 � 
 � � � � fl 
 � � � fl � � � � fl � � � fl � �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
 � � �
 fi fl fl � � � � � � 
 � � � � fl 
 �
 � � � �
 fi fl � � ffi � � � 
 � � � ! � � � � 
 ffi � � �
 � � � �
 # ' � fl 	 ( 	 � 
 �
3. Reserva dinâmica de memória 
� � � �
 � � � � fl � � � � � � ffi � 	 � � � ffi � ffi � fl � � � � fl � � fl fl � � �
� � 
 �
 � � � � fl � � � � � � ffi � 	 � � � ffi � ffi � fl � � � � fl � ffi � � fl � " � �
� � � �
 # ' � fl 	 ( 	 � 
 �
4. Primeiras noções de complexidade 
ff � � �
 � 
 ffi � � � ' � � � � � � � � � ffi � � � � � 	 �
ff � 
 �
 # ' � fl 	 ( 	 � 
 �
ff � � �
 � � � � � � � � � 	 
 ffi � � � ' � � � � � � � � 
 � � � � 
 � )
ff � ff �
 � 
 ffi � � � ' � � � � � � fl � 	 � fl � � � � � � � �
ff � ff � � �
 * 
 � fl � fl � 	 � fl � � � � � � � �
ff � ff � 
 �
 * 
 � fl � fl � 	 
 fl fl � � 	 � � �
ff � ff � � �
 ) � � 
 fl � ffi � ffi � � � fl �
ff � & �
 # ' � fl 	 ( 	 � 
 �
5. Algoritmos elementares de ordenação 
& � � �
 � fl ffi � � 
 � 
 � � � � � � ! � � � � � 
 � � � fl 
 � � � ffi � � � 
 fl � � � � � � 
& � 
 �
 ) fl � � � � � � 
 � 
 fl � � � � 	 � � 
& � � �
 ) fl � � � � � � 
 � 
 fl � fl 
 	 � � 	 � � � � � * 
 fl �
& � ff �
 ) fl � � � � � � 
 � 
 fl � � � � fl � � 
& � & �
 # ' � fl 	 ( 	 � 
 �
6. Mergesort 
+ � � �
 
 � � 	 fl � � � 
 � 
 � � � 
 fl � � ffi 
+ � 
 �
 
 � � � ffi � � � � 
+ � � �
 � � � � � 
 � 
 � � � � fl
+ � ff �
 # ' � fl 	 ( 	 � 
 �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
7. Quicksort 
, � � �
 fi � � 
 fl � � ffi 
 � � � � 	 
, � 
 �
 � � fl � � 
 � fl 
 � � � � � � � � � 	 �
, � � �
 � � fl � � 
 	 � � � � � 	 �
, � ff �
 
 � � � ffi � � � � 
, � ff � � �
 � � � � 
 fl � ffi � � � 
 � � � � 	 
 � � 	 � % � � � � � � � � � �
, � ff � 
 �
 � � � � 
 fl � ffi � � � 
 � � � fl � � � � 
 � � � � ffi � � � � � � � �
�
� ffi 
 � � fl � �
, � & �
 fi ! � � � � 
 � � 
 fl � � 
 fi � * � �
, � + �
 � 
 ffi � � � � fl � 
 � ! � � � � �
, � , �
 # ' � fl 	 ( 	 � 
 �
 
8. Introdução às listas ligadas 
- � � �
 � � � � � � � � ffi � � � � ffi � � � � � � � � � � �
- � 
 �
 � fl ffi � � 
 � 
 � � �
- � � �
 � fl � ffi � � fl � � � ffi � � � ffi � � � � � % � �
- � ff �
 # ' � fl 	 ( 	 � 
 �
9. Primeiras noções de Projecto e de Projecto por 
Contrato 
� � � �
 � 
 � � 
 � � � fl 
 � � 	 � 
� � 
 �
 
 � � � fl � ffi � � � � � � fl � � � fl �
� � 
 � � �
 � 
 ffi � 
 � � � � � � � 
 � � � � fl � ffi � � � � � � fl � � � fl �
� � 
 � 
 �
 # ' � ffi � � 
 � 
 � � � � � 	 � � � � ffi IR�
� � � �
 � � � fl 
 � � � � 
 � 
 � ! � 	 � 
 fl � � � � � � � � � � � � �
� � � � � �
 fi 	 
 � � � ffi � � � 
� � � � 
 �
 � 
 � � � 
� � ff �
 	 � � fl ( � � � 	 � � � � � fl 
 � � 	 � 
� � & �
 � fl 
 � � 	 � 
 � 
 fl � 
 � � fl � � 
� � + �
 # ' � fl 	 ( 	 � 
 �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
10. As listas ligadas revisitadas 
� � � � �
 � � � � fl ! � 	 � � � fl � 	 � � � � � �
� � � 
 �
 � ffi � � � ffi � � � � � � 
 � � ! � � � % � � � � � ffi � 	 � �
� � � � �
 � � � � � � � � � � � �
� � � ff �
 ) fl � � � � � � 
 � ffi � � � � � � � � � � � � �
� � � & �
 � � � � � � 	 � fl 	 � � � fl � � � � ffi � � � � ffi � � � � � � � � � � �
� � � + �
 � � � � � � � � � � � ffi � � � � � � � � � � �
� � � , �
 # ' � fl 	 ( 	 � 
 �
11. Tipos de dados abstractos 
 
12. O tipo de dados abstracto pilha 
� 
 � � �
 $ ffi � � � � � fl ! � 	 � � � fl � 
 fi 
 � � � � �
� 
 � 
 �
 $ ffi � � � � � 	 � ! � 	 � � � 
 ! 
 fl ffi � � � � fl � 
 fi 
 � � � � �
� 
 � � �
 � fl 
 � fl � ffi � 	 � � � � � � � � � � � � � � fi � � � � � � � 
 � � � ' � fl � � � % � � � fl � � ffi � � � 	 � �
�
� 
 � ff �
 � fl � ffi � � fl � � � ffi � � � ffi � � � � � % � � � � fl � 
 fi 
 � � � � �
� 
 � ff � � �
 $ � � � � 
 	 � � � � � �
� 
 � ff � 
 �
 $ � � � � 
 � fl fl � � �
� 
 � ff � � �
 fi � � � � 
 � � fl fl � � �
� 
 � & �
 � fl 
 � fl � ffi � 	 � � � � � � � � � � � � � � 	 
 � � � fl � 
 fl � � � ' � fl � � � % � � � � � � � fl � 	 � � � �
� 
 � � � � 
 � � ! � ' � � � fl � � 
 � � � � 
 � � ! � ' �
�
� 
 � + �
 # ' � fl 	 ( 	 � 
 �
13. O tipo de dados abstracto fila de espera 
� � � � �
 $ ffi � � � � � fl ! � 	 � � � fl � 
 fi 
 ! � � � � � � � � � fl �
� � � 
 �
 � ffi � � � ffi � � � � � � 
 � 
 fi 
 ! � � � � � � � � � fl �
� � � 
 � � �
 $ � � � � 
 � ffi � � � � � � � � � � � �
� � � 
 � 
 �
 $ � � � � 
 � ffi � fl fl � �
� � � � �
 # ' � fl 	 ( 	 � 
 �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
14. As filas revisitadas 
� ff � � �
 � � � � � � � � � � fl � �
� ff � � � � �
 � � � � fl ! � 	 � � � � ffi � � � � fl
� ff � � � 
 �
 � ffi � � � ffi � � � � � � 
 � � � � � � � � ffi � fl fl � � �
� ff � 
 �
 � � � � 	 
 ffi � fl � 
 fl � � � � � �
� ff � 
 � � �
 � � � � fl ! � 	 � � � � � 	 �
� ff � 
 � 
 �
 � fl � ffi � � fl � � � ffi � � � ffi � � � � � % � �
� ff � � �
 
 � � � �
� ff � ff �
 # ' � fl 	 ( 	 � 
 �
15. Implementação em C de ADTs com múltiplas 
instâncias 
� & � � �
 $ ffi fi 
 � 
 � � 
 	 
 ffi ffi � � � � � � � � � � � � � � 	 � � �
� & � 
 �
 $ ffi fi 
 ! � � � � � � � � � fl � 	 
 ffi ffi � � � � � � � � � � � � � � 	 � � �
� & � � �
 � fl 
 � fl � ffi � 	 � � � � � � � � ! � � � � � � � � � fl � � 	 
 � � � fl � 
 fl � � fl � � � � � ffi ! fl � 	 � % � �
� & � ff �
 # ' � fl 	 ( 	 � 
 �
16. O tipo de dados abstracto polinómio 
� + � � �
 � � � � fl ! � 	 �
� + � 
 �
 � ffi � � � ffi � � � � � � 
 � � � � � � � � ffi � fl fl � � �
� + � � �
 � ffi � � � ffi � � � � � � 
 � � � � � � � � ffi � � � � � � � � � � � � �
�
� + � ff �
 # ' � fl 	 ( 	 � 
 �
17. O ADT matriz esparsa 
� , � � �
 � � � fl� � � � 
� , � 
 �
 
 � 	 � � fl � � � 
 � � � � � � ffi � � ! � � � % � � � � � � � � fl ! � 	 �
� , � � �
 � ffi � � � ffi � � � � � � 
 � � � � � � � � ffi � fl fl � � �
� , � ff �
 � ffi � � � ffi � � � � � � 
 � � � � � 
 � � � � � � � � � � � � �
� , � ff � � �
 � fl � ffi � � fl � � � � � � � � �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
� , � ff � 
 �
 * � � � � � � � � � � � � � �
� , � & �
 # ' � fl 	 ( 	 � 
 �
18. Primeiras noções sobre árvores 
� - � � �
 � ffi � � � ffi � � � � � � 
 � � � fl � 
 fl � � 
 fl � � � � � � �
� - � � � � �
 � ffi � � � ffi � � � � � � 
 � � � fl � 
 fl � � 
 fl � � � � � � � � � � � � � � � ffi � fl fl � �
� - � � � 
 �
 � ffi � � � ffi � � � � � � 
 � � � fl � 
 fl � � 
 fl � � � � � � � � � � � � � � � ffi � � � fl � � � fl � � � � � � �
� - � 
 �
 # ' � fl 	 ( 	 � 
 �
19. Árvores binárias 
� � � � �
 � � � � % � � � � � � fl � � � � � � ffi � � � 
� � � 
 �
 � fl 
 � fl � � � � � � � � � � � 	 � � � ! � � � % � � � � � ffi � � � � fl � � fl � 	 � fl � � � � �
� � � � �
 # ' � fl 	 ( 	 � 
 �
20. Acervos e filas com prioridades 
 � � � �
 
 � ! � � � � � 
 � � � 	 � fl � 
 � � 
 �
 � fl 
 	 � � � ffi � � � 
 � � � fl � 	 
 fl fl � 	 � � 
 � � � � 
 � � � � 
 � � 	 
 � � � � � 
 � � � 	 � fl � 
 � � � �
 � ffi � � � ffi � � � � � � 
 � � ! � � � � 	 
 ffi � fl � 
 fl � � � � � � � � � � � 
 � 	 � fl � 
 �
 � � ff �
 fi � � 
 fl � � ffi 
 � � 
 fl � � � � � � 
 � � � � � � 
 � ffi � 	 � fl � 
 �
 � � & �
 # ' � fl 	 ( 	 � 
 �
 
Referências bibliográficas 
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
 
 
Referência rápida sobre C 
R1. Preliminares 
 
R2. Algumas características do C
R3. Exemplo de programa 
�
� � � �
 
 � � 	 fl � � � 
 � 
 � fl 
 � fl � ffi �
R4. Elementos de sintaxe 
�
ff � � �
 � � � � � � ! � 	 � � 
 fl � �
�
ff � 
 �
 � 
 � � � � � % � � � � 
 � � � � � � � � fl � � � � � � � ! � 	 � � 
 fl � � � ffi �
�
ff � � �
 � � � � � fl � � � 	 � � � �
�
ff � ff �
 � � 
 � � � � � � 
 �
�
ff � & �
 � � � � � ! � 	 � � 
 fl � �
�
ff � + �
 
 � 	 � � fl � � � 
 � � � ! � � � � � 
 � � � � fl � � � � � �
�
ff � , �
 � 
 � � � � � � � �
�
ff � , � � �
 � 
 � � � � � � � � � � � � � fl � �
�
ff � , � 
 �
 � � fl � 	 � � fl � � 	 
 � � � � � � � �
�
ff � , � � �
 � 
 � � � � � � � � fl � � � �
�
ff � - �
 ) � � fl � � 
 fl � �
�
ff � - � � �
 ) � � fl � � 
 fl � � � fl � � ffi � � � 	 
 �
�
ff � - � 
 �
 ) � � fl � � 
 fl � � 	 
 � fl � � 
 � � � � � 
�
ff � - � � �
 ) � � fl � � 
 fl � � � � � � 	 
 � � fl � � � 	 � 
 � � � �
�
ff � - � ff �
 ) � � fl � � 
 fl � � � � � � fl � � � � � � 
�
ff � - � & �
 ) � � fl � � 
 fl � � � � � � � � �
�
ff � - � + �
 � � � 	 � � 
 	 � fl � 
 � 	 � fl 	 � � � 
 	 
 ffi 
 � � fl � � 
 fl � � � � � � 	 
 �
�
ff � - � , �
 ) 	 � fl � 	 � � fl � 
 
 � � fl � � 
 fl � ( fl � � � �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � �
�
ff � - � - �
 � fl � 	 � � � � 	 � � �
R5. Controlo de fluxo do programa 
�
& � � �
 � � � � fl � � % � � � � � � � � 	 � � 
 � � !
�
& � 
 �
 � � � � fl � � % � � � � � � � � 	 � � 
 � � � � � 	 �
�
& � � �
 � � � � fl � � % � � � � � fl � � � � � � � � � � � �
�
& � ff �
 � � � � fl � � % � � � � � fl � � � � � � � � 
�
& � & �
 � � � � fl � � % � � � � � fl � � � � � � � ! 
 fl
�
& � + �
 � � � � fl � � % � � � � 	 
 � � fl 
 � 
 � ' 	 � � 	 � 
 � � � � � 
 � � � fl � � � fl � � 
R6. Funções 
�
+ � � �
 � fl ffi � � 
 � 
 � � �
�
+ � 
 �
 � � � � � � � ffi � � � fl � � ffi � � � 
 � � ! � � � % � �
�
+ � � �
 fi � 	 � � 	 � � � * 	 
 � � � �
R7. Arrays e Matrizes 
�
, � � �
 * � fl � � � �
�
, � 
 �
 � � � fl � " � � ffi � � � � � � ffi � � � � 
 � � � �
R8. Ponteiros 
�
- � � �
 fi fl � � ffi � � � 	 � � � � 
 � � � � fl 
 �
�
- � 
 �
 � 
 � � � � fl 
 � � � fl � 	 
 � � � � � � � �
�
- � � �
 � 
 � � � � fl 
 � 	 
 � � � � � � � �
�
- � ff �
 � 
 � � � � fl 
 � 	 
 � � � � � � � � � � fl � 	 
 � � � � � � � �
�
- � & �
 � 
 � � � � fl 
 � � � fl � ! � � � % � �
R9. Sinónimos de tipo 
R10. Estruturas 
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
R11. Uniões 
R12. Campos de bits 
R13. Enumerações 
R14. Directivas de Pré-processador 
R15. Biblioteca de funções 
�
� & � � �
 	 � � � �
�
� & � 
 �
 � � � � 
�
� & � 
 � � �
 fi � � � ffi � � ! � � � % � � � � fl � � � ( � � � ! 
 fl ffi � � � �
�
� & � 
 � 
 �
 fi � � � ffi � � ! � � � % � � � � fl � � � � fl � � � � ! 
 fl ffi � � � � � �
Índice Remissivo 
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
 
0. Preâmbulo 
? $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ S , � " : J , # 1 " 8 & 7 & - � 9 - 1 & 8 " 7 & : J " 1 � - 7 6 , $ 7 " - 1 # , 6 $ � 9 " 9 :
" $ 1 9 8 6 & $ & 8 " � - S & # : 5 1 6 7 , 8 " > " # 5 , 8 � 9 6 # 6 # (
B , H , 3 " # 6 , 8 , $ 3 6 - H 9 , H " - $ 8 " J # & H # , : , < % & K , 3 6 - H 9 , H " : = & 7 9 J , 9 : 3 9 H , # 8 " 8 " $ 1 , � 9 " (
�
$ " H 9 # , : " - 1 " 9 : , 8 , $ 3 6 - H 9 , H " - $ 9 $ , 8 , $ , 7 1 9 , 3 : " - 1 " 7 & : : , 6 $ 1 " : J & 8 " J # & > , $
8 , 8 , $ ( ? 3 6 - H 9 , H " : = � 9 : , 3 6 - H 9 , H " : J " � 9 " - , K 8 " " $ 7 # 6 1 , 7 & - 8 " - $ , 8 , K " � 1 # " : , : " - 1 "
" S 6 7 6 " - 1 " K � 9 " J " # : 6 1 " 9 : " 3 " > , 8 & - � > " 3 8 " 6 - 1 6 : 6 8 , 8 " 7 & : & 7 & : J 9 1 , 8 & # ( B % & " � 6 $ 1 "
& 9 1 # , 3 6 - H 9 , H " : 8 " , 3 1 & - � > " 3 , 7 1 9 , 3 � 9 " J " # : 6 1 , : , 6 & # - � > " 3 8 " J # & � 6 : 6 8 , 8 " 7 & : ,
: 5 � 9 6 - , K " $ J " 7 6 , 3 : " - 1 " - & � 9 " $ " # " S " # " 	 $ $ 9 , $ 7 , J , 7 6 8 , 8 " $ 8 " , # 6 1 : � 1 6 7 , 7 & :
J & - 1 " 6 # & $ ( ? � 9 - 1 , # , 6 $ 1 & K , 3 6 - H 9 , H " : = 1 " : : " 7 , - 6 $ : & $ 8 " , 2 $ 1 # , 7 < % & $ 9 S 6 7 6 " - 1 " $
J , # , J " # : 6 1 6 # 9 : , 6 : J 3 " : " - 1 , < % & , 8 " � 9 , 8 , 8 " " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ K , 3 H & # 6 1 : & $ K
J # & H # , : , $ " : " $ : & $ 6 $ 1 " : , $ (
? & 7 , $ , # : & $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ 7 & : = - % & " $ 1 , # " : & $ , $ " # : 9 6 1 & & # 6 H 6 - , 6 $ ( 0 $ 1 ,
" $ 7 & 3 4 , � $ " H 9 6 8 , - , $ 8 6 $ 7 6 J 3 6 - , $ 8 " ? 3 H & # 6 1 : & $ " 0 $ 1 # 9 1 9 # , $ 8 " D , 8 & $ " : : 9 6 1 & 7 9 # $ & $
8 " � - S & # : 5 1 6 7 , J & # " $ 1 " : 9 - 8 & S & # , K 6 - 7 3 9 6 - 8 & , 3 H 9 - $ 8 & $ - & $ $ & $ J # I J # 6 & $ 7 9 # $ & $ 8 "
0 - H " - 4 , # 6 , (
0 $ $ " - 7 6 , 3 : " - 1 " , & # 6 H 6 - , 3 6 8 , 8 " 8 & 3 6 > # & " $ 1 5 # " 3 , 7 6 & - , 8 , 7 & : , , 2 & # 8 , H " : J # , H : 5 1 6 7 ,
$ " H 9 6 8 , - , , J # " $ " - 1 , < % & 8 , $ : , 1 � # 6 , $ ( ? - & $ $ , " � J " # 6 � - 7 6 , " : $ , 3 , 8 " , 9 3 , K : & $ 1 # , @ - & $
� 9 " & , $ $ 9 - 1 & K - % & $ " - 8 & 8 6 S � 7 6 3 K � : 9 6 1 , $ > " � " $ 6 - 1 6 : 6 8 , 1 6 > & J , # , & # " 7 � : @ 7 4 " H , 8 & (
? & 3 & - H & 8 & 3 6 > # & 9 1 6 3 6 � , : & $ 9 : , 3 6 - H 9 , H " : 7 3 , # , K 8 " 3 " 6 1 9 # , S 5 7 6 3 K $ " : & S # " � 9 " - 1 " "
8 " $ - " 7 " $ $ 5 # 6 & 
 � � � � 1 � 7 - 6 7 & @ 7 6 " - 1 � S 6 7 & , $ $ & 7 6 , 8 & , " $ 1 , $ : , 1 � # 6 , $ ( ? J " $ , # 8 " $ 1 " " $ 1 6 3 &
- % & $ " J # " $ 7 6 - 8 " 8 & # 6 H & # � 9 " 3 " > , & 8 " $ " - > & 3 > 6 : " - 1 & 8 " J # & H # , : , $ 8 " � 
 � � ffi fi � fi � K
8 " $ 6 H - , 8 , : " - 1 " - & � 9 " $ " # " S " # " 	 $ 9 , 7 & # # " 7 < % & ( G , # , J # & $ $ " H 9 6 # " $ 1 " & 2 � " 7 1 6 > & K 7 " 8 &
, J # " $ " - 1 , : & $ - & < � " $ 8 " J # & � " 7 1 & " 8 " J # & � " 7 1 & J & # 7 & - 1 # , 1 & � 9 " - & $ , � 9 8 , : - &
8 " $ " - > & 3 > 6 : " - 1 & $6 $ 1 " : 5 1 6 7 & 8 & $ J # & H # , : , $ $ 9 2 $ " � 9 " - 1 " $ (
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
B % & J # " 1 " - 8 " : & $ $ " # " � , 9 $ 1 6 > & $ - , , J # " $ " - 1 , < % & 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ ( = & - 7 " - 1 # , : & @
- & $ - , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ S 9 - 8 , : " - 1 , 6 $ K J , # , 8 6 $ 7 9 1 6 # : & $ " 6 3 9 $ 1 # , # : & $ , $ > 5 # 6 , $
, 3 1 " # - , 1 6 > , $ 	 $ 9 , 6 : J 3 " : " - 1 , < % & " : = ( C > & 3 9 : " � , 9 1 & @ 7 & - 1 6 8 & K 6 - 7 3 9 6 - 8 &
6 - 7 3 9 $ 6 > , : " - 1 " - & S 6 - , 3 9 : , # " S " # � - 7 6 , # 5 J 6 8 , K : , $ 7 & : J 3 " 1 , K $ & 2 # " = (
 
� & 8 & $ & $ 7 & - 7 " 6 1 & $ $ % & 8 " > 6 8 , : " - 1 " 6 3 9 $ 1 # , 8 & $ ( A 1 6 3 6 � , : & $ " � " : J 3 & $ 6 - 1 " - $ 6 > , "
" � 1 " - $ 6 > , : " - 1 " ( R , � " : & @ 3 & , & - � > " 3 8 , 6 - 1 # & 8 9 < % & 8 " 9 : 7 & - 7 " 6 1 & : , $ 1 , : 2 � : 8 " J & 6 $
, & - � > " 3 8 , 6 : J 3 " : " - 1 , < % & " : = ( R , � " : & @ 3 & , 6 - 8 , 8 " 9 : , S & # : , $ 6 $ 1 " : 5 1 6 7 , 8 " $ 8 " ,
6 - 1 # & 8 9 < % & 8 & $ " 3 " : " - 1 & $ S 9 - 8 , : " - 1 , 6 $ 8 , J # & H # , : , < % & K 7 & : & , - & < % & 8 " 1 6 J & $ & 9 8 "
1 6 J & $ 8 " 8 , 8 & $ , 2 $ 1 # , 7 1 & $ K , 1 � , & $ 1 I J 6 7 & $ : , 6 $ , > , - < , 8 & $ K 7 & : & & 8 , $ : , 1 # 6 � " $
" $ J , # $ , $ ( ? , 2 & # 8 , H " : � K J & # 1 , - 1 & K " : 6 - " - 1 " : " - 1 " J # 5 1 6 7 , ( G , # , � 9 " & 3 " 6 1 & # J & $ $ , 6 #
S , � " - 8 & , $ 9 , J # I J # 6 , , 9 1 & @ , > , 3 6 , < % & K 7 , 8 , 7 , J � 1 9 3 & 1 " # : 6 - , 7 & : 9 : 7 & - � 9 - 1 & 8 "
" � " # 7 � 7 6 & $ K 1 " - 1 , 1 6 > , : " - 1 " & # 8 " - , 8 & $ J & # & # 8 " : 7 # " $ 7 " - 1 " 8 " 8 6 S 6 7 9 3 8 , 8 " (
� 8 " - 1 6 S 6 7 , # " # " J # & 8 9 � 6 # 2 & , $ J # 5 1 6 7 , $ 8 " J # & H # , : , < % & 1 " : > 6 - 8 & , $ " # # " 7 & - 4 " 7 6 8 &
7 & : & 8 , $ , 7 1 6 > 6 8 , 8 " $ : , 6 $ " S 6 7 , � " $ - & J # & 7 " $ $ & 8 " " - $ 6 - & M , J # " - 8 6 � , H " : 8 ,
J # & H # , : , < % & ( D " S , 7 1 & K J # & H # , : , # � 8 , & # 8 " : 8 " 7 & : 9 - 6 7 , # ( = & : 9 - 6 7 , # 7 & : ,
: 5 � 9 6 - , K : , $ S 9 - 8 , : " - 1 , 3 : " - 1 " 7 & : 9 - 6 7 , # " - 1 # " J # & H # , : , 8 & # " $ ( P , 2 " # 3 " # 7 I 8 6 H & "
6 8 " - 1 6 S 6 7 , # 7 I 8 6 H & 8 " � 
 � � ffi fi � fi � � � 9 " J & $ $ , $ " # # " @ 9 1 6 3 6 � , 8 & � 9 , - 8 & - " 7 " $ $ 5 # 6 & K 1 & # - , @ $ "
, $ $ 6 : 1 % & 6 : J & # 1 , - 1 " 7 & : & $ , 2 " # " $ 7 # " > " # 7 I 8 6 H & (
? & $ " H 9 6 # : & $ 9 : , , 2 & # 8 , H " : J # , H : 5 1 6 7 , 9 $ , - 8 & 6 - 1 " - $ 6 > , " " � 1 " - $ 6 > , : " - 1 " " � " : J 3 & $
8 " 2 & , $ J # 5 1 6 7 , $ 8 " J # & H # , : , < % & " : = " $ J " # , : & $ " $ 1 , # 7 & - 1 # 6 2 9 6 # J , # , & $ 9 7 " $ $ & 8 " $ 1 "
J # & 7 " $ $ & 8 " " - $ 6 - & M , J # " - 8 6 � , H " : (
� � � �
 � � � � � 	 
 � � � 
? J # & H # , : , < % & " " $ 1 # 9 1 9 # , 8 " 8 , 8 & $ " : = � 9 : 1 " : , # " 3 , 1 6 > , : " - 1 " : , 8 9 # & 7 & :
, J 3 6 7 , < � " $ " : > , # 6 , 8 � $ $ 6 : , $ 5 # " , $ 8 , " - H " - 4 , # 6 , 6 - S & # : 5 1 6 7 , K 8 , 6 - S & # : 5 1 6 7 , 8 " H " $ 1 % &
" 8 & $ 7 & : J 9 1 , 8 & # " $ " : H " # , 3 ( 0 - 7 & - 1 # , : & $ , J 3 6 7 , < � " $ 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ " : 5 # " , $
� 9 " > % & 8 " $ 8 " & $ $ 6 $ 1 " : , $ & J " # , 1 6 > & $ K , & $ 7 & : J 6 3 , 8 & # " $ K " 	 6 - 1 " 3 6 H � - 7 6 , , # 1 6 S 6 7 6 , 3 ( D " $ 1 "
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
J & - 1 & 8 " > 6 $ 1 , K " 8 , 8 & & 7 & - 1 " � 8 & " , , 2 & # 8 , H " : J # , H : 5 1 6 7 , $ " H 9 6 8 , K & 3 6 > # & �
6 - 1 " # " $ $ , - 1 " J , # , 9 : , , : J 3 , , 9 8 6 � - 7 6 , L " - H " - 4 " 6 # & $ K 6 - S & # : 5 1 6 7 & $ K " $ 1 9 8 , - 1 " $ "
8 & 7 " - 1 " $ 9 - 6 > " # $ 6 1 5 # 6 & $ K : , $ 1 , : 2 � : , & 9 1 # & $ J # & S 6 $ $ 6 & - , 6 $ � 9 " � 9 " # " : , 7 1 9 , 3 6 � , # & $
$ " 9 $ 7 & - 4 " 7 6 : " - 1 & $ - & � : 2 6 1 & 8 " 9 : J # & H # , : , 8 " , J # " - 8 6 � , H " : , & 3 & - H & 8 , > 6 8 , K " , &
, 9 1 & @ 8 6 8 , 7 1 , � 9 " � 9 " # , J # " - 8 " # , 8 " $ " - > & 3 > " # & $ $ " 9 $ J # & H # , : , $ 8 " 9 : , S & # : , $ 6 : J 3 " $
: , $ $ 6 $ 1 " : 5 1 6 7 , ( ? & # H , - 6 � , < % & 8 & 7 & - 1 " � 8 & 1 & # - , & 3 6 > # & , 7 " $ $ � > " 3 , & - & > 6 < & " :
J # & H # , : , < % & : , $ 1 , : 2 � : , & 3 " 6 1 & # " - > & 3 > 6 8 & 4 5 : 9 6 1 & - & 8 " $ " - > & 3 > 6 : " - 1 & 8 "
J # & H # , : , $ (
 
� � 
 �
 � 
 � � � � 
 � � � � �
C 1 " � 1 & 8 & 3 6 > # & � " $ 7 # 6 1 & " : � 6 : " $ B " � � & : , - ( C 7 I 8 6 H & = � " $ 7 # 6 1 & " :
Arial Narrow
K
7 & : & " :
 #include <stdio.h> 
 /* Primeiro programa. */ 
int main() { 
 printf(“Olá mundo!”); 
 return 0; 
 } 
C $ 7 & : " - 1 5 # 6 & $ , & 7 I 8 6 H & $ % & " $ 7 # 6 1 & " : G & # 1 9 H 9 � $ ( G & # 9 : , � 9 " $ 1 % & 8 " 9 - 6 S & # : 6 8 , 8 " K
1 & 8 & $ & $ 6 8 " - 1 6 S 6 7 , 8 & # " $ � - & : " $ 8 " > , # 6 5 > " 6 $ K S 9 - < � " $ K " 1 7 ( � $ % & " $ 7 # 6 1 & $ " : � - H 3 � $ (
G , # , , 3 � : 8 & $ " 3 " : " - 1 & $ H # 5 S 6 7 & $ 8 " : & 8 " 3 , < % & 7 & : & & $ 8 6 , H # , : , $ 8 " " $ 1 # 9 1 9 # , & 9
S 3 9 � & H # , : , $ K 9 1 6 3 6 � , @ $ " , 7 , 6 � , 8 " 1 " � 1 & 7 & : 3 6 : 6 1 " $ , J # " 1 & J , # , 6 8 " - 1 6 S 6 7 , # & $
" 3 " : " - 1 & $ 8 " $ 6 - 1 , � " 8 , 3 6 - H 9 , H " : (
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
� � � �
 fi � fl � � � 	 � ffi � � � 
 �
? & $ : " 9 $ , 3 9 - & $ J " 3 & $ " 9 " $ 1 � : 9 3 & J " # : , - " - 1 " (
? & $ 7 & 3 " H , $ 8 & D " J , # 1 , : " - 1 & 8 " 0 - H " - 4 , # 6 , 0 3 " 7 1 # I - 6 7 , " � - S & # : 5 1 6 7 , 8 , R , 7 9 3 8 , 8 " 8 "
= 6 � - 7 6 , $ " � " 7 - & 3 & H 6 , 8 , A - 6 > " # $ 6 8 , 8 " 8 & ? 3 H , # > " � 9 " 7 & : 6 H & 1 � : 3 " 7 7 6 & - , 8 &
8 6 $ 7 6 J 3 6 - , $ K & - 8 " , $ : , 1 � # 6 , $ , H & # , , J # " $ " - 1 , 8 , $ 1 � : > 6 - 8 & , $ " # 3 " 7 7 6 & - , 8 , $ ( 0 :
J , # 1 6 7 9 3 , # H & $ 1 , # 6 , 8 " , H # , 8 " 7 " # 	 G , 9 3 , ! " - 1 9 # , J " 3 & $ " 9 , J & 6 & - , " 3 , 2 & # , < % & 8 ,
J # 6 : " 6 # , > " # $ % & " 3 " 7 1 # I - 6 7 , 8 & $ , J & - 1 , : " - 1 & $ 8 , 8 6 $ 7 6 J 3 6 - , G # & H # , : , < % & � � (
� " 7 & - 4 " < & 6 H 9 , 3 : " - 1 " & $ : " 6 & $ " & , : 2 6 " - 1 " J # & J � 7 6 & 	 # " S 3 " � , < % & J # & J & # 7 6 & - , 8 & $
J " 3 , A - 6 > " # $ 6 8 , 8 " 8 & ? 3 H , # > " " J " 3 & 9 , 3 H @ 6 3 , 2 L � 4 " A , 3 H � - S & # : , 1 6 7 $ ; , 2 (
 
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
 
 
 
 
 
1. Introdução 
A : , 3 H & # 6 1 : & 7 & # # " $ J & - 8 " , 9 : , S & # : , 8 " # " $ & 3 > " # 9 : J # & 2 3 " : , ( � , 6 $ 7 & - 7 # " 1 , : " - 1 " K
9 : , 3 H & # 6 1 : & � 9 : 7 & - � 9 - 1 & S 6 - 6 1 & $ 8 " 6 - $ 1 # 9 < � " $ J # " 7 6 $ , $ " & # 8 " - , 8 , $ � 9 " # " $ & 3 > " 9 :
8 " 1 " # : 6 - , 8 & J # & 2 3 " : , ( A : , 3 H & # 6 1 : & 8 " > " $ , 1 6 $ S , � " # 9 : 7 & - � 9 - 1 & 8 " J # & J # 6 " 8 , 8 " $
7 & : & L
' (
 
D " > " 1 " # : 6 - , # - 9 : 7 & - � 9 - 1 & S 6 - 6 1 & 8 " J , $ $ & $ � S 6 - 6 1 9 8 " � �
E (
 
= , 8 , J , $ $ & 1 " : � 9 " $ " # J # " 7 6 $ , : " - 1 " 8 " S 6 - 6 8 & � 8 " S 6 - 6 1 9 8 " � �
Q (
 
= , 8 , J , $ $ & 8 " > " $ " # $ 9 S 6 7 6 " - 1 " : " - 1 " $ 6 : J 3 " $ � " S 6 7 5 7 6 , � �
U
(
 
D " > " # " $ & 3 > " # & J # & 2 3 " : , " : 1 " : J & � 1 6 3 J , # , � 9 " , $ & 3 9 < % & J # & 8 9 � 6 8 , 1 " - 4 ,
6 - 1 " # " $ $ " � " S 6 7 6 � - 7 6 , � �
F (
 
� " : . & 9 : , 6 $ " - 1 # , 8 , $ "
/ (
 
� " : ' & 9 : , 6 $ $ , � 8 , $ (
B , # " $ & 3 9 < % & 8 " J # & 2 3 " : , $ 9 $ , : & $ , 3 H & # 6 1 : & $ 7 9 � & 8 " $ " : J " - 4 & J & 8 " 8 " J " - 8 " # � "
: 9 6 1 &� 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ � 9 " 9 1 6 3 6 � , : (
�
8 & - & $ $ & 6 - 1 " # " $ $ " 8 " $ " - > & 3 > " #
, 3 H & # 6 1 : & $ " S 6 7 6 " - 1 " $ ( � 9 6 1 , $ > " � " $ K , � - 6 7 , 4 6 J I 1 " $ " � 9 " 1 " # " : & $ 8 " " - 7 & - 1 # , # 9 : ,
$ & 3 9 < % & J , # , 9 : 7 " # 1 & J # & 2 3 " : , " $ 1 5 - , 9 1 6 3 6 � , < % & 8 " , 3 H & # 6 1 : & $ " S 6 7 6 " - 1 " $ (
A : , " $ 1 # 9 1 9 # , 8 " 8 , 8 & $ - % & � : , 6 $ 8 & � 9 " 9 : , S & # : , 8 " & # H , - 6 � , # > , 3 & # " $ # " 3 , 7 6 & - , 8 & $
" " : 7 9 � & $ " � " : J 3 & $ $ " 6 - 7 3 9 " : , $ : , 1 # 6 � " $ K , $ 3 6 $ 1 , $ K , $ 5 # > & # " $ " & $ H # , S & $ (
B & " $ 1 9 8 & 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ , - & < % & 8 " 1 6 J & $ 8 " 8 , 8 & $ � 9 : , - & < % & 7 " - 1 # , 3 (
� � � �
 � 
 � � 
 � � � � � 
 � � � � � 
 �
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
? : , 6 & # J , # 1 " 8 , $ 3 6 - H 9 , H " - $ 8 " J # & H # , : , < % & J # & J & # 7 6 & - , : J " 3 & : " - & $ 9 : 7 & - � 9 - 1 &
: � - 6 : & 8 " 1 6 J & $ 8 " 8 , 8 & $ J # 6 : 6 1 6 > & $ & 9 J # � @ 8 " S 6 - 6 8 & $ K , $ $ 6 : 7 & : & , 7 , J , 7 6 8 , 8 " 8 "
7 & - $ 1 # 9 6 # - & > & $ 1 6 J & $ K & 9 1 6 J & $ 8 " S 6 - 6 8 & $ J " 3 & 9 1 6 3 6 � , 8 & # ( �� , $ , S 6 - , 3 & � 9 " � 9 : 1 6 J & 8 "
8 , 8 & $ � �
A : 1 6 J & 8 " 8 , 8 & $ � 9 : 7 & - � 9 - 1 & 8 " > , 3 & # " $ " 9 : , 7 & 3 " 7 < % & 8 " & J " # , < � " $ $ & 2 # " " $ $ " $
> , 3 & # " $ ( 0 � " : J 3 & L C 1 6 J & 8 " 8 , 8 & $
int
7 & - $ 6 $ 1 " 8 & $ " H 9 6 - 1 " 7 & - � 9 - 1 & 8 " > , 3 & # " $
�
. K � ' K @ ' K � E K @ E K ( ( ( K
INT_MAX
K
INT
�
� � B �
& - 8 "
INT
�
MAX
"
INT
�
MIN
# " J # " $ " - 1 , : & $ > , 3 & # " $ : 5 � 6 : & $ " : � - 6 : & $ 8 & $ 6 - 1 " 6 # & $ ( ? $
& J " # , < � " $ $ & 2 # " & $
int
$ % & : 9 6 1 , $ " 6 - 7 3 9 " : & $ & J " # , 8 & # " $ , # 6 1 : � 1 6 7 & $
+, -, *, /
"
%
K 1 " $ 1 "
8 " 6 H 9 , 3 8 , 8 " " 8 " $ 6 H 9 , 3 8 , 8 " K & J " # , < � " $ 8 " , 1 # 6 2 9 6 < % & K " 1 7 (
G & # � 9 " # , � % & , - & < % & 8 " 1 6 J & 8 " 8 , 8 & $ � 1 % & 6 : J & # 1 , - 1 " � 0 $ $ " - 7 6 , 3 : " - 1 " J & # 1 # � $
& # 8 " - $ 8 " # , � � " $ (
' (
 
A : 1 6 J & 8 " 8 , 8 & $ J # & J & # 7 6 & - , 9 : , 6 - 1 " # J # " 1 , < % & J , # , & $ > , 3 & # " $ H 9 , # 8 , 8 & $ " :
: " : I # 6 , �
E (
 
? � 9 8 , : , & # H , - 6 � , # " , 8 & 7 9 : " - 1 , # 7 & - 7 " 6 1 & $ �
Q (
 
G & $ $ 6 2 6 3 6 1 , : � 9 " & 7 & : J 6 3 , 8 & # , � 9 8 " & J # & H # , : , 8 & # - , > " # 6 S 6 7 , < % & 8 , 7 & # # " 7 < % &
8 & $ " 9 7 I 8 6 H & (
0 $ 1 " $ , $ J " 7 1 & $ $ " # % & 6 3 9 $ 1 # , 8 & $ 8 " $ " H 9 6 8 , (
� � 
 �
 � � 
 � � fl � ffi � � � � 
 �
! , : & $ 7 & : " < , # J & # > " # & � 9 " , 3 6 - H 9 , H " : ? B P � = � S # " � 9 " - 1 " : " - 1 " # " S " # 6 8 , 8 , � 9 6
J , # , , S # " - 1 " $ 6 : J 3 " $ : " - 1 " J & # = @ - & $ & S " # " 7 " J , # , & # H , - 6 � , # " J # & 7 " $ $ , # 6 - S & # : , < % & (
0 : = K , $ , 2 $ 1 # , 7 < � " $ 8 & : 9 - 8 & # " , 3 $ % & K " : � 3 1 6 : , , - 5 3 6 $ " K # " J # " $ " - 1 , 8 & $ J " 3 & $ 1 6 J & $
J # 6 : 6 1 6 > & $ 8 " 8 , 8 & $ L
char
K
int, float, double
(
0 : = K 9 $ , : & $ 9 : - � : " # & S 6 � & 8 " 2 6 1 $ J , # , # " J # " $ " - 1 , # - � : " # & $ ( ? $ $ 6 : K & $
int
$ % & J & #
- " 7 " $ $ 6 8 , 8 " 6 - 1 " 6 # & $ � 9 " > 6 > " : 8 " - 1 # & 8 " 3 6 : 6 1 " $ " $ J " 7 � S 6 7 & $ � 9 " 8 " J " - 8 " : 8 & - � : " # &
8 " 2 6 1 $ � 9 " 9 $ , : & $ J , # , & $ # " J # " $ " - 1 , # (
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
G , # , S , 7 6 3 6 1 , # , , J # " $ " - 1 , < % & K > , : & $ 7 & - $ 6 8 " # , # 9 : 7 & : J 6 3 , 8 & # 8 " = & - 8 " & $ 6 - 1 " 6 # & $
$ % & # " J # " $ " - 1 , 8 & $ 9 $ , - 8 & , J " - , $ Q 2 6 1 $ ( C $ > , 3 & # " $ J & $ $ � > " 6 $ J , # , " $ $ " $ Q 2 6 1 $ $ % & L
. . . K . . ' K . ' . K . ' ' K ' . . K ' . ' K ' ' . " ' ' '
C $ 7 & : J 6 3 , 8 & # " $ 8 " = 9 $ , : & $ 6 $ 1 " : , 8 " - 9 : " # , < % & 2 6 - 5 # 6 & - , 1 9 # , 3 J , # , # " J # " $ " - 1 , #
6 - 1 " 6 # & $ $ " : $ 6 - , 3 K J " 3 & � 9 " L
� ffi � � ffi � � � � ffi� � �
. . . .
. . ' '
. ' . E
. ' ' Q
' . .
U
' . ' F
' ' . /
' ' ' O
G & # 1 , - 1 & K & - � : " # & 8 " 6 - 1 " 6 # & $ 8 6 S " # " - 1 " $ � 9 " J & 8 " # " : & $ # " J # " $ " - 1 , # 9 $ , - 8 & Q 2 6 1 $ �
8 , 8 & J & # E � � * ( 0 $ $ " $ 6 - 1 " 6 # & $ 7 & : " < , : " : . " > % & , 1 � E � @ ' � O ( 0 $ 1 " $ $ % & & $ 3 6 : 6 1 " $ 8 "
> , # 6 , < % & K & 9 , H , : , 8 " > , 3 & # " $ J & $ $ � > " 6 $ K J , # , 6 - 1 " 6 # & $ $ " : $ 6 - , 3 8 " Q 2 6 1 $ (
P " " : > " � 8 " Q 2 6 1 $ 1 6 > " $ $ " : & $ * K " - 1 % & J & 8 " # 6 , : & $ # " J # " $ " - 1 , # E � � E F / > , 3 & # " $
8 6 S " # " - 1 " $ " , H , : , 8 " > , 3 & # " $ $ " # 6 , 8 " . , E � @ ' � E F F (
B & 7 , $ & H " # , 3 K J , # , 9 : 7 & : J 6 3 , 8 & # 8 "
n
2 6 1 $ K ffi � � ( K J , # , 9 : 7 & : J 6 3 , 8 & # � 9 " # " J # " $ " - 1 "
6 - 1 " 6 # & $ 9 $ , - 8 &
n
2 6 1 $ K " � 6 $ 1 6 # % & E
n
6 - 1 " 6 # & $ 8 6 S " # " - 1 " $ K $ " - 8 & & $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & . "
E
n
@ ' (
C � 9 " > 6 : & $ � > 5 3 6 8 & J , # , 6 - 1 " 6 # & $ $ " : $ 6 - , 3 ( ? # " J # " $ " - 1 , < % & 8 " 6 - 1 " 6 # & $ 7 & : $ 6 - , 3 �
S " 6 1 , 9 $ , - 8 & , � 9 6 3 & , � 9 " $ " 7 4 , : , # " J # " $ " - 1 , < % & " : 7 & : J 3 " : " - 1 & J , # , E (
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
! & 3 1 " : & $ , & - & $ $ & 7 & : J 6 3 , 8 & # 8 " Q 2 6 1 $ ( C $ > , 3 & # " $ J & $ $ � > " 6 $ J , # , " $ $ " $ 1 # � $ 2 6 1 $
7 & - 1 6 - 9 , : , $ " # & $ : " $ : & $ L . . . K . . ' K . ' . K . ' ' K ' . . K ' . ' K ' ' . " ' ' ' ( 0 : 7 & : J 3 " : " - 1 &
J , # , E K & 2 6 1 : , 6 $ 	 " $ � 9 " # 8 , - & - � : " # & � & 9 & 2 6 1 : , 6 $ $ 6 H - 6 S 6 7 , 1 6 > & � � 9 $ , 8 & J , # ,
6 - 8 6 7 , # & $ 6 - , 3 8 & - � : " # & ( P " " $ $ " 2 6 1 S & # . " $ 1 , : & $ - , J # " $ " - < , 8 " 9 : - � : " # & J & $ 6 1 6 > & �
$ " " $ $ " 2 6 1 S & # ' 1 " # " : & $ 9 : - � : " # & - " H , 1 6 > & (
B � : " # & $ J & $ 6 1 6 > & $ 7 & : " < , : J & # . " & $ # " $ 1 , - 1 " $ 2 6 1 $ # " J # " $ " - 1 , : & > , 3 & # , 2 $ & 3 9 1 & 8 &
- � : " # & ( B � : " # & $ - " H , 1 6 > & $ 7 & : " < , : J & # ' K $ " - 8 & & $ " 9 > , 3 & # , 2 $ & 3 9 1 & � 8 , 8 & J " 3 ,
8 6 S " # " - < , " - 1 # " , � 9 , - 1 6 8 , 8 " 8 " - � : " # & $ � 9 " $ " 7 & - $ " H 9 " : # " J # " $ " - 1 , # 7 & : & - � : " # &
8 " 2 6 1 $ # " $ 1 , - 1 " $ " & > , 3 & # " : 2 6 - 5 # 6 & - , 1 9 # , 3 # " J # " $ " - 1 , 8 & J & # " $ $ " $ : " $ : & $ 2 6 1 $ (
�
ffi � � � � � � � � � � � � 
 ff �
. . . � .
. . ' � '
. ' . � E
. ' ' � Q
' . . @
U
@ . �
U
' . ' @
U
@ ' � Q
' ' . @
U
@ E � E
' ' ' @
U
@ Q � '
? $ $ 6 : K " : 2 & # , 9 : 6 - 1 " 6 # & 7 & : $ 6 - , 3 K # " J # " $ " - 1 , 8 & 9 $ , - 8 & Q 2 6 1 $ K 1 " - 4 , , 6 - 8 , E � � *
> , 3 & # " $ J & $ $ � > " 6 $ K & $ $ " 9 $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & $ % & L @ � E � � � @
U
" E � @ ' � Q (
P " 1 6 > " # : & $ * 2 6 1 $ " - 1 % & , H , : , 8 " > , # 6 , < % & > , 6 8 " � � E � � � @ ' E * , E � @ ' � ' E O (
B & 7 , $ & H " # , 3 K 9 : 6 - 1 " 6 # & 7 & : $ 6 - , 3 # " J # " $ " - 1 , 8 & 9 $ , - 8 &
n
2 6 1 $ 1 " # 5 E
n
> , 3 & # " $ 8 6 S " # " - 1 " $
" 9 : , H , : , 8 " > , # 6 , < % & � 9 " > , 6 8 " � � E � � � � , E � � � @ ' (
A : , : , - " 6 # , 8 " $ , 2 " # : & $ � 9 , 6 $ $ % & & $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & J , # , & $ 6 - 1 " 6 # & $ - &
7 & : J 6 3 , 8 & # 8 " = � 9 " " $ 1 , : & $ , 9 $ , # � # " 7 & # # " # 	 $ : , 7 # & $ 8 " S 6 - 6 8 , $ - & S 6 7 4 " 6 # & 8 "
7 , 2 "< , 3 4 &
limits.h. 
G , # , & $ 6 - 1 " 6 # & $ K " $ $ " $ 3 6 : 6 1 " $ $ % & 8 , 8 & $ J & # L
INT
�
MIN
"
INT
�
MAX
(
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
0 : = - " H & 7 6 , : & $ " $ J , < & " J # " 7 6 $ % & " $ 7 & 3 4 " - 8 & " - 1 # "
char, int, long int
� " " - 1 # "
float,
double ou long double
� (
� ! , 3 & # " $ 1 � J 6 7 & $ J , # , , 3 H 9 - $ 1 6 J & $ " : 7 & : J 6 3 , 8 & # " $ 8 " ' / 2 6 1 $ �
 � � 
 # � � � � 
 � � ffi � � � � � � � � fl � � � � 
7 4 , # * 2 6 1 $ . , E F F
$ 4 & # 1 " 6 - 1 ' / 2 6 1 $ @ Q E O / * , Q E O / O
9 - $ 6 H - " 8 $ 4 & # 1 " 9 - $ 6 H - " 8 6 - 1 ' / 2 6 1 $ . , / F F Q F
3 & - H Q E 2 6 1 $ @ E '
U
O
U
* Q /
U
* , E '
U
O
U
* Q /
U
O
9 - $ 6 H - " 8 3 & - H Q E 2 6 1 $ . ,
U
E
T U T
/ O E
T
F
S 3 & , 1 Q E 2 6 1 $ � J # " 7 6 $ % & O 8 � H 6 1 & $ �
S & 9 2 3 " /
U
2 6 1 $ � J # " 7 6 $ % & ' F 8 � H 6 1 & $ �
3 & - H 8 & 9 2 3 " * . 2 6 1 $ � J # " 7 6 $ % & '
T
8 � H 6 1 & $ �
! 6 : & $ J & # 1 , - 1 & � 9 " # " J # " $ " - 1 , < � " $ 6 H 9 , 6 $ $ 6 H - 6 S 6 7 , : K " : H " # , 3 K 7 & 6 $ , $ 8 6 S " # " - 1 " $ J , # ,
1 6 J & $ 8 6 S " # " - 1 " $ ( ! " � , : & $ , H & # , 7 & : & & $ 1 6 J & $ 8 " 8 , 8 & $ - & $ , � 9 8 , : , & # H , - 6 � , # " ,
8 & 7 9 : " - 1 , # 7 & - 7 " 6 1 & $ (
A : � � � J # & H # , : , � & # H , - 6 � , & $ 8 , 8 & $ # " 3 , 7 6 & - , - 8 & @ & $ 7 & : & $ 7 & - 7 " 6 1 & $ 8 & J # & 2 3 " : ,
" : # " $ & 3 9 < % & ( G & # " � " : J 3 & K 9 : " 8 6 1 & # H # 5 S 6 7 & & # H , - 6 � , & $ $ " 9 $ 8 , 8 & $ 8 " S & # : , , � 9 "
# " J # " $ " - 1 " : J & - 1 & $ K 3 6 - 4 , $ " S 6 H 9 # , $ H " & : � 1 # 6 7 , $ ( A : , & # H , - 6 � , < % & 8 " 8 , 8 & $ 8 " $ 1 " 1 6 J &
1 & # - , & J # & H # , : , : , 6 $ 3 " H � > " 3 K ffi � � � K : , 6 $ S 5 7 6 3 8 " 7 & : J # " " - 8 " # " : , 6 $ S 5 7 6 3 8 " : , - 1 " # K
ffi � � � K 8 " " $ 1 " - 8 " # & 9 : " 3 4 & # , # (
G & # " � " : J 3 & K 7 & - $ 6 8 " # " : & $ � 9 " " : > " � 8 " 6 : J 3 " : " - 1 , # : & $ & " 8 6 1 & # H # 5 S 6 7 & 7 & : J 3 " 1 & �
, J " - , $ - " 7 " $ $ 5 # 6 & 7 , 3 7 9 3 , # 8 6 $ 1 � - 7 6 , $ � " 9 7 3 6 8 " , - , $ � " - 1 # " J & - 1 & $ 8 & J 3 , - & (
� � � � � � � � � 	 
 � 
 � � � � � � 
 � � � � � � � � � � � � � � � � � � � � � � � � 
 � � � � � 	 � � � � � � � � � � � � � � � � �
�
 
 � �� � � � �� � � � � � 
 � � � � � � 	 � � � 
� � 
 � � � � � � � � � � � � � � � � � � � � ff � fi � � fl � fi ffi � � � � � � � � � � � � � � � � � � � � fi � � � � � � � � � � ! " # $ "
%
�
&
� � fi � � � � � � � � � � ! ' # $ '
% (
� � � � � � � )
*
*+
*
*+ ,
-
,
- ..
//
0
−+−=
1
� 2 � � � � 2 � � � � � 3 � � � � 4 � 2 5 2 � � � � � � 3 � � 5 � � � � � � � 2 � � � � � � � � � � � � � � � � � � � 6 � ffi 6 � � �
� � 4 � � � � � � � � 4 � � 2 � )
int main() { 
float a, b, c, d; 
printf("Abssissa do ponto A:"); 
scanf("%f", &a); 
/* ... */ 
printf("dist: %f \n", dist(a, b, c, d)); 
return 0; 
} 
 
� � � � � 7 � � 8 � �
dist
� � � � � � � � � � 2 � ffi � 2 � � � � � � � � � � 4 � � � � � 7 � � 2 � )
 
double dist(float x, float y, float z, float t) { 
float dx = x - y; 
float dy = z - t; 
return sqrt(dx * dx + dy * dy); 
} 
 
� 2 � � �
sqrt
(
� 7 � � 8 � � � � � fi � ffi fi � ffi � � � � � 9 � � � � � � � � � � � � � � � 7 � � � � � � � ffi � 6 � � � � �
math.h
�
 
 � �� � � � �� � � � � � 
 � � � � � � � � � � 
�
2 � � � � 2 � � � � � 3 � � � 6 � 8 � �
(
� � � � � � � 2 � � � � � � � 2 � � � � fi � � � � � � fi � 2 � 7 � � 2 � fi � 2 �
fi � � 2 � 2 � � � 7 � � 8 � �
dist
5 � � � � � � � 2 � � � � � � � � � � � � � � 6 � ffi 6 � � � � � � ffi � � � � fi � � � � fi � � � � �
7 � fi � � 5 � � � � � ff 2 � � � � �
x
�
y
� � � � � � � � fi � � � � � � � � � � � � � � 3 � � � � � � � � � � � � � � � � � � � � � � � �
z
�
t
� � 2 � � � fi � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
(
� 6 � � � � � � � � fi � � � 4 � � 	 � � � 2 � �
� � � � � � � � fi � � fi ffi � � � � � � � ffi � 4 � 3 � ffi � � � � � � � � � � fi � � � 4 � � � � 
 � 2 � � � � � � � � � 
 � � �
�
2 � � � 4 � � 2 � � � � � 7 � fi � � � � � � � 2 � � 2 � � � � � 7 � � � � � 2 � ffi � � � � � � � � 6 � ffi 6 � � � � � � � � � � � � 9 � � 2 � �
� 2 � � 6 � � � � � � � � � � � � � � � � � � � � � � � � � � fi � � fi � � � � � � � � � � � � fl � � � � 3 � � � 6 � 8 � � ffi � 6 � � � � � � �
� � � � � � � � � � 7 � � � 8 � � � � � � 6 � � � � � � � � � � � � � � �
� 
 � 
 � � � � � � � � � � � � � � � � � � � � � � � ff fi � � fl
� 
 � 
 � 
 ffi � � fl � � � fl fi �
� ! " # $ " $ # % % & # ! & % ' ( ) $ % & # $ * % ' + , % , ) - ! . ! / " $ % 0 ' ! / " ! , ! " 1 * ) , 1 2 ! # ! / " ! - 3 $ !
* ) , ! ' ! # ' % / 1 * $ 0 % , ) 4 ) ' ) $ ' % $ / 1 , % , ! - 5 6 7 6 - 4 ) ' $ ' / ) ' ! 4 ) ' $ ' - ' % 3 $ !
* ) , ! ' ) % 1 / , % # ! 2 ! # 1 # % 4 % , % 4 ) ' * ) / ! / " ! 1 / , 1 . 1 , $ % 0 , ! $ ' 4 ! # " ) , % , ) * ! 0 ) / ) ' ! 8 �
4 % , % 4 ) ' * ) / ! / " ! 1 / , 1 . 1 , $ % 0 4 9 % ' % # ! ' ) ' ! ' : # ) , ! , % , ) 8
� ; / 1 4 % ) * ! # % < = ! 3 $ ! ! " > ) , ! 2 1 / 1 , % * % # % % ! " # $ " $ # % > ) ) % 4 ! ) % ' ! ' : # ) - %
4 ? * 1 % ! % % " # 1 : $ 1 < > ) 8
@
) , ! ' ) $ % # % ! " # $ " $ # % * % # % , ! 2 1 / 1 # $ ' " 1 * ) , ! , % , ) 3 $ ! # ! * # ! ! / " ! * ) / " ) A
struct point { 
 float x; 
 float y; 
 }; 
 
! ! 4 # ! . ! # A
 
struct point A, B; 
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
A.x=1.0; A.y=1.0; 
B.x=4.0; B.y=2.0; 
� ) ' ) % ) * ! # % < > ) , ! 4 ? * 1 % ! " � , ! 2 1 / 1 , % * % # % % ! " # $ " $ # % - * ) , ! ' ) * % % #
, 1 # ! 4 " % ' ! / " ! ! " # $ " $ # % 4 ) ' ) % # & $ ' ! / " ) , ! 2 $ / < = ! 8
@
) # ! � ! ' * 0 ) A
 double dist(struct point p, struct point q) { 
 float dx = p.x - q.x; 
 float dy = p.y - q.y; 
 return sqrt(dx * dx + dy * dy); 
 }; 
� 0 " ! # / % " 1 . % ' ! / " ! * ) , ! # � % ' ) " ! # $ % , ) % * % 0 % . # % � 4 9 % . !
typedef
* % # % 1 / 2 ) # ' % # )
4 ) ' * 1 0 % , ) # , ! 3 $ ! 3 $ ! # � % ' ) 4 # 1 % # $ ' / ) ' ! * % # % ) / ) . ) " 1 * ) ! % 1 ' 2 % 4 1 0 1 " % # % ! 4 # 1 " % 8
�
typedef
" ! ' % ! & $ 1 / " ! 1 / " % � ! A
typedef <tipo elementar ou estruturado> <novo identificador> 
�
� ! ' * 0 ) A
typedef int Number;
�
) 4 % ) , % ! " # $ " $ # %
point
" ! # 1 % ' ) -
 typedef struct { float x, y; } point; 
 
! * ) # " % / " ) * ) , ! # � % ' ) " ! # ! 4 # 1 " ) % 2 $ / < > ) % / " ! # 1 ) # , % ! & $ 1 / " ! 2 ) # ' % A
 
 double dist( point p, point q) { 
 /* … como antes … */ 
 }; 
�
) " ! � ! 3 $ ! )
typedef
/ > ) 1 / " # ) , $ � $ ' / ) . ) " 1 * ) ff fi % * ! / % $ ' 1 / ? / 1 ' ) ( ) $ $ ' %
% : # ! . 1 % " $ # % + , ! $ ' " 1 * ) 3 $ ! * ) , 1 % ! # ! * ! 4 1 2 1 4 % , ) , ! ) $ " # % 2 ) # ' % 8 � * # ) & # % ' %
4 ) ' * 0 ! " ) ! # 1 %
� � � � �� � � � �� 	 
 � � � � � � 
 � � � � � � � �
#include <stdio.h> 
#include <math.h> 
 
typedef struct { float x, y; } point; 
double dist( point, point); 
int main() { 
point a,b; 
printf("Primeiro ponto:"); 
scanf("%f", &a.x); 
/* ... */ 
printf("dist: %f \n", dist(a,b)); 
return 0; 
} 
 
double dist(point p, point q) { 
float dx= p.x - q.x; 
float dy=p.y - q.y; 
return sqrt(dx * dx + dy * dy); 
}; 
�
% " $ # % 0 ' ! / " ! 3 $ ! / % , % / ) 1 ' * ! , ! , ! % & # $ * % # ' ! ' : # ) , ! , % , ) 3 $ ! ! � % ' ! 0! 
* # ? * # 1 ) ! " # $ " $ # % 8
�
� ! ' * 0 ) A
 typedef struct circle{ 
 point center; 
 float radius; 
 } /* ou o que é a mesma coisa: */ 
 typedef struct{ 
 point center; 
 float radius; 
}
}
} � � � � � � � � � 	
 � � 
 � � � 
 � � � � � 
 � � � � � 
 � �� � � � 
 � � � � 
 � � � 
 � � � � � � � ff
fi
� 
 � 
 � fl � � � � � � � � � � � � 
 � � � � �
point. 
ffi � � ! " � # � � � � �
� $ % # � $ � � � � & ' "
 
� � � � �� � � � �� � fl � � � � � � � � � � 	 � � � 
 } circle; 
� � 
 � � � 
 � � � � � � � � � � � 
 � � � � � � � � ff � fi fl � � ffi � � � � � ff � ff � � � � � � � � � � � 
 ffi � � � � � ff � ff � � � � � �
� � � � � ! ff " fi fl � � # � � � " � � " � � $ " % � � � � 
 � � � � � � � � ! � & � fi % � ffi � � � ff � ffi � ffi � � ff ffi � � � � ff � ffi � ffi � #
� � � � � 
 � " � � ffi � & ' ffi � � � � � � ff � " � � (
 circle aCircle, bCircle; 
 aCircle.center.x = 0.0; 
 aCircle.center.y = 0.0; 
 aCircle.radius = 1.0; 
 
 bCircle = aCircle; /* OK*/ 
� � � ) � 
 � � * ff � ffi � ! � " � � ff 
 � ! ff " fi % � � � � � � � � � ! � & � � � � � � ffi ff � � � � � � ff � ff � � � � ff � � ffi � 
 � � � � � �
� � ff � � � #
+
 � ff 
 � (
• ,
 � � � � � ff � ff � � � ff � � ffi � $ � � � � � � 
 � � 
 � " � 
 � $ ff 
 � & � � & fi % � ffi � � � � � � �
-
� � � " � ff � 
 � " � � . ffi � � � � � � ffi � ! � � � " � � � /
• 
+
 � � � � $ � � � � � � ff � ff � � � ! ff " & � � " � 
 & � 
 � * ff � * ff � � � � � � � 0 � � & � # 1 � � � � ) � � � � �
 � � � � 2 � � ffi � � � � � ff � ff � � � $ � � " � � � � � � � � � � � � � � ff � ff � � � $ � � & #
• 
� � ffi � � � � � ff � ff � � ffi � ! � " � ff 
 � � � � fi � ffi � " � 
 � � � � ' � � � � # � % � 3 � � � � ) � � � � � �
ffi � ! � " � fi % � ffi � ff 
 � � � � � ff � ff � � & � 
 � 
 � 
 � � � ffi � � � � � ' � � � � #
4 5 6 5 7 5
 8 9 : ; < =
> ff � � � ! � � 
 � ffi � ffi � ! � " � � ff 
 " � � � � � � � ffi � ffi � ffi � � & � " � � � � � � 
 ff � � � 2 � � ff " � fl � � # ? � � � * ff �
! � * ff � & � � � � ffi � ! � � � " fi � � " � � � ff 
 � � � � � ff � ff � � � ff 
 � ff " � % � � � 
 � � � � � & � 
 � 3 * ff � ff 
 � �
� ff � � � � % � � � � � � � � " � � ffi � � � 
 
 � 
 ' � � � #
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
? � � � � ! � � � � � ffi � � � � � � � " � � fi % � � � 
 � � & � " � � ffi � � � � * ff � � � � � 
 � � � � ffi � � & � 
 ff 
 & � 
 � � � ffi � �
ffi � � � � � � � $ � � � � 3 $ � � 
 � � & � " � � ffi � � � � * ff � ff 
char
� & ff � � � � � � �
- �
� � � � . � ff 
int
� & ff � � �
� � � � � #
� ff � " ffi � ffi � ! � " � 
 � � � � � � � ff � ff � �
 struct s { 
 int i,j; 
 }; 
� � 
 � � � & � " � � � ffi � ffi �
i
� 
 � ffi � � � � 
 � " � � � � � ff � ffi � ffi � & � " � � � ffi � ffi �
j
#
 
 
> � 
 � 
 � � � � ffi � ff 
 � � � � � ff � ff � � � � 
 � " ffi � � � fi � � & � � � & � " � � � & � 
 � � ff � � � ffi � 
 ffi �
ffi � & � � � fi % � #
? � � � � 2 � � $ � � ffi � � � � � � � * ff � ffi � � � $ � ff 
 � � � $ 
 � 
 � � � � ffi � ffi � ffi � � ffi � ff 
 � � � � � ff � ff � �
� � � � � 	 � 
 � 
 � � 
 � 0 � � � ffi � 
 � 
 ' � � � # ? � � � � � � � � & � � � � $ � � � � � 
 � � � ff � � � ff " � fl � � # �
ffi � & � � � fi % � ffi � ff 
 � ff " � % � 3 � � 
 � 	 � " � � 
 ffi � ff 
 � � � � � ff � ff � � #
+ �
� 
 � � (
union u { 
char lowbyte; 
int word; 
 }; 
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
� � � � � �
�
� 
 � � $ * ff � � �
char lowbyte
$ * ff � � � � " � � � � �
word
& � 
 � fi � 
 � � � � � � 
 � 2 � " � ffi � � �
� � � � � � ffi � 
 � � 
 � � � � � fi % � ffi � 
 � 
 ' � � � #
� � � ff � � 
 � " � � * ff � $ " � � � � & � � � $ � � � � � �
lowbyte
� � � � �
word
� � � � � � �
word
$ � � � � �
lowbyte
#
�
� � � 
 � � ff 
 �
�
� 
 � � (
 union u aUnion; 
 aUnion.word=0x105; /* 105H = 261D */ 
 printf("%d", aUnion.lowbyte); 
 
> � � � ff � � ffi � � � � � � ( � �
� 0 * ff � � 
 
 � 
 ' � � � � � � � � 
 � �
 
+
� � * ff � � 3 � � � 
 � � � & � ffi � � � " ffi � � � " ffi � " � � 
 � " � � * ff � � � �
lowbyte
$ * ff � � � �
highbyte� ,
 �
 � " � � � � � � � � � (
 
 typedef struct { 
 unsigned char low, high; 
 } lhbytes; 
� � � � �� � � � �� � fl � � � � � � � � � � 
 � � � 
 
 
 typedef union { 
 lhbytes byte; 
 int word; 
 } bytesword; 
 
+
� � � � � " � � (
 bytesword bw; 
 bw.word =261; 
 printf("%d %d \n", bw.byte.low, bw.byte.high); 
 
� � � � ff � � ffi � � � � � � � � #
+
" * ff � " � � * ff � (
 bytesword bw; 
 bw.byte.low =5; 
 bw.byte.high =1; 
 printf("%x \n", bw.word); 
� � � ffi ff 2 � � � � ( � � � �
+
 � ff 
 � (
• ,
 � ff " � % � � � ffi � � � � � � � � � & � 
 � ff 
 � � � � � ff � ff � � � 
 * ff � � � ffi � � � � 
 � 
 � � � � � � 
�� � � � �
2 � � � $ � � � � � � � 
 � " � � � � � " ffi � � � fi � � � � � $ � # � # $ � � ffi � � � � 
 � 
 � � � � & � 
 � fi � 
� � � � � ff � � ffi � ffi � � � � � � � � � ffi � 
 � � 
 � � " ffi � � � fi � � " � & � � #
• 
� ff " � % � � � � 0 � ff ! � & � � " � � 
 � " � � � � � " ffi � � � � � & � " � � � � 
 � � � � ffi � � � � ff � 
 � 
 � � � �
ffi � ffi � ffi � �
-
� " & ff � " ffi � � � � " 	 � 
 � " � � � � � � � � � � ffi � ffi � � � ffi � � � � 
 � 
 � � � � . #
> � � � 
 � � � " � � * ff � ffi � & � � � � ffi � ff � � � 2 � fi % � ffi � � � � � � $ * ff � ! � � � � ff � � � � � 3 � * ff � � ! � � 
 � * ff � �
� � � � ! � � " � & � � " ! � � 
 � fi % � � � & � 
 � � � ffi � � � & � � & � ffi � � ffi � ffi � � 
 � " � � ff � ffi � � � � � � � � � � � 
 � �
& � 
 � � � � $ � & � 
 � � � ffi � � � � � � � � � � ffi � � � � ff ffi � � � � � � � � � 
 � ffi � � " � � � � � ! � & � fi % � ffi � & � � � � & fi % �
ffi � � � ff & ' ffi � � � # � � �
�
� 
 � � ffi � � ffi � � � � � � 0 ! � & � $ � & � 
 � � � ffi � � � � ffi � � � � � ! � & � � � � � � � � � fi fl � �
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
ffi � � � � � " & 	 � 
 � " � � & � 
 & � � � � � % � & � � � � & � � 
 � " � � � � � & � ffi � � 
 � ! � � ff � � � � � � 
 3 � � � & � �
! � & 	 � ffi � � � " % � � � ff � � � � � " � � ffi � ffi � � $ & � 
 � � � � � " � � � #
4 5 � 5
 � � < � � � � : � =
� #
 �
� � � " � � � � ff 
 � � � � � � 
 � * ff � � � & � � � � � � � ff " � 
 � " � � & � % #
� #
 �
� � � " � � � � ff 
 � � � � � � 
 � * ff � � � � � � � ff " � 
 � & � 
 � � � � � � � & � � � � � � � ff � �
� " � & � � � � " � � & � % #
� #
 
+
� & � � � � ff 
 � � � � � � 
 � � 
 � * ff � 
 � � � � � � 
 � � � � � � 
 � " � � " � 
 � � � * ff � � � � � ffi �
� � � � � � � " � � � " � � 
 � � � " � � ffi � � � � � � � 
 � fi % � * ff � � � � 0 � ff � � � $ � 
 & � ffi � ff 
 ffi � �
� � � ff � " � � � � � � � � (
� . � " � ffi . ff " � � � " � ffi & 	 � �
� . � " � � " � � . ! � � �
& . � 	 � � � � " � ! . ffi � ff � �
	 #
 
+
� & � � � � ff 
 � � � � � � 
 � � 
 � * ff � � � � ff 
 " � 
 � � � � " � � � � � � � � � * ff � 
 � � � � � �
� � � � � ffi � � 
 	 �
�
� ffi � & � 
 � #
 #
 
� � " � � ffi � � � � � � � ff � " � � � � � � � � 
 � #
#include <stdio.h> 
#include <string.h> 
#include <ctype.h> 
 
#define COMPMAX 128 
 
typedef struct {int letras, espacos, palavras;} contador; 
 
int main() { 
 char dentro=0, texto[COMPMAX]; 
 int i; 
 fgets(texto,COMPMAX,stdin); 
 for (i=0; i<strlen(texto); i++) { 
 if (!dentro && !isspace(texto[i])) { 
 dentro=1; 
 printf("%c",texto[i]); 
 } 
� � � � �� � � � �� � fl � � � � � � � � � � � � �� 
 else if (dentro && isspace(texto[i])) { 
 dentro=0; 
 } 
 } 
 /* printf("\n%d %d %d \n", c.letras, c.espacos, c.palavras); */ 
 return 0; 
} 
� .
 
+ �
� � * ff � � * ff � � � � � � � � 
 � ! � 2 #
� .
 
� � � � � � � � � � � � 
 � ffi � ! � � 
 � � & � " � � � � " � 
 � � � ffi � � � � � � $ � � � � fi � � �
� � � � � � � #
& .
 
� � � � � � � � � � � � 
 � ffi � ! � � 
 � � & � " � � � � ! � � * ff � " & � �
-
� 
 � � � & � " � � � � 
 . ffi �
& � ffi � � � � � #
� �
 
� � � � � � � � � � � � 
 � ffi � ! � � 
 � * ff � � � " � � � ffi � � � � � � � � � � ! � � � � � � � � � 3 � ffi � ff 
! � & 	 � � � � ffi � � �
�
� �
�
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
2. Arrays e Ponteiros 
� � & � � ) � ff � � " � � � � � � ffi � � � " � � � � 
 � � ff 
 � � � � � � 
 � � � � � & � & ff � � ffi � � � � " & � � � � " � � � �
� � " � � � ffi � � � " �
- ℜ
�
. # � � � 
 � � 2 ffi � ℜ
�
� � " � � � � � � � " � � � � � � � � " & � � � � 
 � ℜ� & � ffi � � � " � �
� � � � � � � � � � � � " � � ffi � � � �
n
& � � � ffi � " � ffi � � #
� � * ff � � � � 
 � � � � � � � � ffi � � � � " & � �
-
� ff & � ffi � � " � . $
d
$ � " � � � � � � � " � � �
X
�
Y
$ � � " ffi �
X
� � � � � � � " � � ffi � � � � � & � � � ffi � " � ffi � �
(x1, x2, ..., xn)
�
Y
� � �
(y1, y2, ..., yn)
$ � � � � � 
 � � * ff �
� 
 � � 
 � " � � � � �
�
� � � � � % � (
d =
�
=
−=−++−+− �
�
��
��
�������� 	 
		 �
�
�
�
�
�
�
� 
? � � � � � � � � & � 
 � � � 
 � � � " � � � $ ff 
 � ffi � � � � � 
 � � � � � � � � � & ff � � fi fl � � * ff � ffi � � � 
 � � � � � 3 �
ffi � & � � % � � � � � � * ff � ffi � � � � 0 � � � � � � � � ff � ff � � ffi � ffi � ffi � � � ff � � � 2 � � � � � � � ff � � ffi � � � � " ! � � 
 � fi % �
ffi � & � ffi � � � " � � #
+
" * ff � " � � * ff � � � � � � & � � � ffi � ℜ
�
$ � � � � � � " � � � � � � 
 � " � � $ ff 
 � � � � � ff � ff � �
 
� � � � & � � � � �
� � & � 	 � � & � � � � ffi � $ � � � � � & � � � ffi � ℜ� $ � � � � � ff � ff � � " % � 3 � & � " � � 	 0 � � # � � � � � � � * ff � ffi � & � ffi �
� � 2 * ff � * ff � � 3 � � � 
 � � � � � � � � � � � � � ffi � ffi � 
 � " � % �
n
$ � � � ) � 
 � � * ff � � � � � � � " % � � � � " � � � �
 � 
 � � � � ffi � ffi � ffi � � ffi � � � � � ff � ff � � $ 
 � � � � 
 � 3 
 � � � ' � � � � ! ff " fi % � * ff � & � & ff � � ffi � � � � " & � � #
� � " � ff � � � 
 ffi � � � � � � � 
 � fi % � � ffi � � � � " � � � � 2 � ff 
 � � � � � ff � ff � � ffi � ffi � ffi � � � � 
 � " � � �
� * ff � � � � " � � 
 " � fi % � 
 � � � 
 0 � � & � ffi � � � & � � � ( � � � � � � # � % � � � � 0 � � � � � " � � ffi � � � � � � " 	 � � * ff �
� � � � � � � � � � ff 
 � ffi � � � � � � ff � ff � � � ffi � ffi � ffi � � 
 � � � ff � � � 2 � ffi � � � 
 � � � � � � 
 � fi % � #
,
 � � � � � 3 ff 
 � & � � & fi % � ffi � � � � � � � $ � � ffi � � ffi � 
 � � 
 � � � � � ffi � ffi � ffi � � $ * ff � � % � � & � ffi � ffi � �
� � � ff 
 ) " ffi � & � � " � � � � � #
+
 � $ � � � � 
 � � � � ) " ffi � & � ffi � ff 
 � � � � � 3 � #
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
? � � � � �
�
� 
 � � � 
 � � � ff ffi � $ � � � � � � 3 ff 
 � � � & � 	 � " � � ff � � # � " � � � ffi � ffi � � � " � � � � � 
 � � �
� � � � � � 
 � * ff � & � & ff � � ffi � � � � " & � � � " � � � ffi � � � � � " � � � ffi � ℜ� � � � � 
 � � � � � � � � � � ffi � � #
�
� & � � � � � � ff 
 � � � � � ffi � � " � � � � � �
ai
& � 
 � � � � 
 � " � � � ffi � � � � ff � " � � ! � � 
 � (
 int ai[10]; 
� & � ffi � � � � � � � � � 
 � � � � � � 
 � " � � ffi �
ai
ffi � � � � ff � " � � ! � � 
 � (
ai[0] 
� � " � & � � � 2 � fi % � ffi � � � � 
 � � � �
� � 
 � " � � ffi � ff 
 � � � � � � � � � � ffi � � � � � ff � � � � � � #
 /* 1ª Versão */ 
 #define N 10 
 
 int i; 
 int ai[N]; 
 ai[0]=1; 
 for( i=1; i<N; i++) ai[i]=0; 
 
� �
� �
�
� � � % �
� �
 #define N 10 
 int i; 
 for( ai[0]=1, i=1; i<N; ai[i++]=0); 
> � " % � � � � 
 � � � � � � � � � ff � fi % � � " � � � ffi � � � � � � � � � ffi � � � & � � 
 � " � � # � � � � 3 $
 
int ai[]={1,2,3}; 
int bi[3]; 
bi=ai; 
� �
+ � �
>
� �
�
� � � 
 � � * ff � ! � 2 � � ff 
 � � � � � � ff � fi % � 
 � 
 � � � � 
 � 
 � � � (
 for( i=0; i<3; i++) b[i]=ai[i]; 
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
� �
� ff 
 � � � � � 
 � � � 
 � " � �
� �
 for( i=0; i<3; bi[i]=ai[i++]); 
? � ffi � 
 � � � � � � � � � � � ffi � * ff � * ff � � � � � � ffi � ffi � ffi � � #
+
 � � � � � & ff � � $ � � ffi � 
 � � � � � � � � � � � ffi �
� � � � ff � ff � � � (
 #define N 10 
 typedef struct { float x, y;} point; 
 
 point apoints[N]; 
 
 apoints[0].x=0.0; 
 apoints[0].y=0.0; 
/* Programa que calcula a distância entre dois pontos de ℜℜℜℜn */ 
 
#include <stdio.h> 
#include <math.h> 
 
#define N 10 
 
double distn(float[], float[], int); 
void read(float[], int); 
 
int main() { 
float x[N], y[N]; 
printf(“Ponto X: “); 
read(x, N); 
printf(“Ponto Y: “); 
read(y, N); 
printf(“d= %f”, distn(x, y, N)); 
return 0; 
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
} 
 
double distn(float p[], float q[], int n) { 
int i; 
float sum = 0.0; 
for (i=0; i<n; i++) 
sum += (p[i]-q[i])* (p[i]-q[i]); 
return sqrt(sum); 
} 
 
void read(float a[], int n) { 
int i; 
for(i=0; i<n; i++) { 
printf(“Coordenada %d”, i+1); 
scanf(“%f”, &a[i]); 
printf(“\n”); 
} 
} 
> � 3 �
�
� � � 
 � 
 � " � � � ! � & � � " � � " � � � � & � � � � 
 � " � � ffi � � � � � � � # � ff � � � ffi � � � � � ! � & � � " & � � ffi � � � �
� � � � ! � & � � ffi � & � 
 � � � ffi � � ffi � �
�
� � � � � � � � � � � � � 
 � ffi � � � � � � � � " � � � � � ffi � ffi � ffi � ff � � � ) " ffi � & � �
" % � " � � � � � � � � � 
 � " � � � � ffi � * ff � � � � 
 � " 	 � ffi � � � � � � # ? � � � ff � � � � � � � � � � � $ � � � ! � & � � ffi �
� " % � ! � 2 � � � � � � ! � & � fi % � ffi � ) " ffi � & � � # ? � � � � 3 
 ffi � � � � $ 3 ffi � �
�
� ffi � � � � � � � � � 
 � ffi � � �
� � � � � " � � � � � ffi � ffi � ffi � � � & � � � � � " ff 
 � ffi � ffi � � � � � fi % �
-
� ff � � 
 � " � � . ffi � ff 
 � � � � � � " � � � ffi � � �
� � � � � � � � fi % � #
+
 � �
�
� � � � ff 
 � & � � � � � � � " ffi � " & � � ffi � � � & � � � " � � � � � � � 
 � " � � � � ff & � � � � � � � ffi � ff 
 � � � � � �
� � � � � � fi fl � � & � " � � & ff � � � � � � 
 
 � 
 ' � � � $ � 
 * ff � � � � " & � " � � � 
 #
� ! � � ff � � � � � ff � " � � � � � � � � � " � � � � � � � fi � � & ff � � ffi � � � � � � � � � ffi � � " � � � � � �
ai
$ & � 
 � �
� � 
 � " � � � # � � " � � ffi � � � � � � * ff � � � � � ffi � � ff � � ffi � �
�
� � � �
-
� � � � � . � 
 & � ffi � � � � � fi % � ffi �
 � 
 ' � � � � * ff � � � � � 
 � � � � � � � � 	 � � & � 
 ff 
 & � 
 � � � ffi � � ffi � � � � � � � #
� � � � �� � � � �� � fl � � � � � � � � � � 	 � � � 
 int ai[10]; 
� ff � " � � 3 * ff � ff 
 � � � � � � & ff � � � 
 
 � 
 ' � � �
�
> & ff � � � � � 
 � " 	 � ffi � � � � � ffi � � � � ff �
� � 
 � " � � � 
 ff � � � � & � ffi � � � � " � 
 � � � ffi � � � 
 � " � � � #
,
 � � � 2 * ff � � � � 
 � " 	 � �
�
� & � � * ff � & � ffi � � � � � ffi � ffi � ffi � � � & ff � � ffi � � � " ffi � ffi � � 
 � � � " � � ffi �
� � � � � � 
 � fi % � $ � � ffi � � � 
 � � ff � � � � � � � � � ffi � � ff " 0 � � �
sizeof(<tipo>)
� � � � � � � � � 
 � � � � � �
� " ! � � 
 � fi % � #
+
 � � � � �
sizeof
� � � � � " � ff 
 � � � �
-
� " � � � � � � � 
 � � " � . ffi � � � � �
size_t
#
7 5 4 5
 � � 9 � < : � � =
,
 �� " � � � � �
-
� ff � � � " � � ffi � � . � � ffi � � � � � � � � � & � 
 � ff 
 � � � � � 0 � � * ff � � ff � � ffi � � � " ffi � � � fi �
ffi � � ff � � � � � � � 0 � � #
� � " � � ffi � � � 
 � � ff 
 � 
 0 * ff � " � & � 
 � " ffi � � � fi � 
 � " � � ffi � � � � � � � � � � � � � ff � " � � � �
�
� � � � � fl � � (
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
char c=3; 
 char *ptr_c; /*declaração de ponteiro para um char */ 
* ff � " ffi � � � ! � 2 � � � � � � ff � fi % �
ptr_c=&c; /*endereço do char c */
� " � % �
ptr_c
! � & � & � 
 � � � � � � � � ffi � ! � � ff � �
? � � * ff � � � 
 � � � � 3 � � � � � $ � 
 � � � � � � � 0 � � � � � � � � & � 
 � � � ff 
 � ffi � " � � ! � & � ffi � �
-
" � 
 � . $ � � � � $
ff 
 � � � �
- �
�
� � � � �
. � ff 
 � � & � � 2 � fi % �
-
�
�
� � � � �
. #
? � � � & � ffi � � � � � �
� �
�
�
� � � � � � � � � � � " � � � � � � � � � �
� �
#
+ �
� � � � � � " ffi � � � � " � � � � � � � " 3 � � & �
void*
# � ff � * ff � � � � " � � � � � � � ffi � � 0 � � � & � " � � � � � ffi � � � � �
void*
#
� � * ff � � � � 
 � � � � � � � � & � " � � � ffi � ffi � � � � � 0 � � � " ffi � � � fi � ffi � � � �
ptr_c
$ � � & � � � � 
 � �
*ptr_c
$
& � 
 � � 
 (
 printf("%c", *ptr_c); 
,
 � ffi � � � � � � � & ff � � � ffi � ffi � � ffi � � 3 * ff � � & � 
 � � � ffi � � � ff � � � � � ff �
-
* ff � � � � � 
 � � � . � " � 
 � ffi �
ff 
 � � � � � � � � ff 
 � � " � � � � � � � � � � � � � 
 � � � � � � 
 � " � � ffi � � � � � � � � & 	 � 
 � ffi � � " ffi � � � fi �
� � � � #
+
� � � � � " � � (
#define N 10 
 int ai[N]; 
 
 ai[2]== *(a+2); /* É sempre verdade */
� � � � �
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
�
� * ff � ! � � ffi � � � � & � 
 � �
�
& � � � ff � � � � � � & � � � � � 
 * ff � � " � 
 � ffi � � � � � � 3 � � � & � ffi � ffi � � � �
� � � � � ffi � � ff " 0 � � �
&
$ " � � � � � � " fi � ffi � � � � � � � ffi � � � �
++
�
--
$
sizeof
� * ff � " ffi � � " � 
 � ffi � � � � � � 3
� � � � � � " ffi � � � * ff � � ffi � ffi � ff 
 � � � � � � ff � fi % � #
�
� ) * ff �
 int ai[3]; 
 int bi[3]; 
 /* ... */ 
 bi=ai; /*ERRO*/
� � � � 
 * ff � " ffi � ff � � 
 � � � " � 
 � ffi � ff 
 � � � � � & � 
 � � � � ff 
 � " � � ffi � ff 
 � ! ff " fi % � $ �
& � 
 � � � ffi � � � ff � � � � � ff � � 0 � � � � " � 
 � � � � � " ffi � � � fi � ffi � � � � 
 � � � � � � 
 � " � � ffi � � � � � � # ? � � �
� � � " � � & � � � * ff � � � & � � � � � � � � � � � � 
 � � � � 
 $ � � � � � � � 
 � � � ff � � � � ffi � & � � � fi % � ffi � � � " � � � � �
* ff � � ffi � ffi � & � � � fi % � $ * ff � � " � ffi � ! � " � fi % � ffi � � ! ff " fi fl � � # � � 
 � �
�
� 
 � � $ & � " � � ffi � � � � � � �
! ff " fi % � * ff � & � & ff � � � � 
 � ffi � ff 
 � � � � � (
 int soma( int *, int); 
 
 int main() { 
 int a[]={1,2,3}; 
 int n = sizeof(a) / sizeof (int); 
 pritnf("%d", soma(a, n)); 
 return 0; 
 }; 
 
 int soma( int *x, int n) { 
 int i, s=0; 
 for(i=0; i<n; s+=x[i++]); 
 return s; 
� �
� � � � � � � & � 
 � " � � � � � � � 
 � � � � " & � � � 3 � � � � ) � � � � � � � * ff � 3 � � � 
 � " 	 � ffi � � � � � � ff � � " ffi �
� � � � � � ffi � �
sizeof
#
 
� � � � �� � � � �� � fl � � � � � � � � � � 
 � � � 
7 5 7 5
 � � < � � � ; < = � � � � � 9 � < : � � =
� #
 
? � ffi � 
 � � � � 
 � �
-
� ff � ff � � � � � � . ff 
 � " � � � � �
n
� ff 
 � � " � � � � � # > � � � ff � � ffi � 3 ff 
 � � " � � � � �
� � � � � " � 3 � � 
 � � � 
 � " � � 
 � � � 
 ! � � " � �
-
� ff 
 � � � � � � 0 � . ffi � � � 
 � " � � � � � " � � ffi �
� " � & � � 
 � " � � #
 int a[3]; 
 
 int *ptr=&a[1]; 
 
 ptr+1; 
 ptr-1; 
� � � � � � � * ff � " � � � � & � � � $ & � 
 � ff 
 � " � � � � � � & ff � � � � � � � � $ � � � " � � � � �
ptr
3
� " & � � 
 � " � � ffi �
-
� ff ffi � & � � 
 � " � � ffi � . � � � � � fi fl � � ffi � 
 � 
 ' � � � � � � � * ff � ! � * ff � �
� � � " � � � � � � � � � � 
 � " � � � 
 � ffi � � � � 
 � " � � � & � 
 �
-
� ff � � � �
�
� . ffi � � � 
 � " � � � � � � � " � #
+
� � � 3 ff 
 � ffi � � � � � " & � � � � � � � 2 fl � � � � � � � ffi � & � � � fi % � ffi � � � " � � � � � � � � � � � � � ffi �
� � � � 0 � � � � � " � � ffi � #
+
 � � � � ff 
 � � " � � � � � � � � � ff 
char
� � � � � ff 
float
� � � � � 
� 
 � � � � ff � � ffi � � � 
 � � 
 � � " ffi � � � fi � $ � * ff � " � � ffi � ffi � ffi � 
 � 
 ' � � � � ffi � � � � & � � � �
� � � � � 3 � ffi � & � ffi � ff 
 ffi � � � 3 ffi � ! � � � " � � #
� #
 
? � ffi � 
 � � � ff � � � � � � � � � " � � � � � � ffi � 
 � � 
 � � � � � ffi � � ffi � * ff � � 
 � � � � " ffi � � � & � 
� � 
 � " � � � ffi � 
 � � 
 � 
 � � � � 2 #
+ �
� 
 � � (
 int a[5], *ptr1, *ptr2, i; 
 ptr1=&a[1]; 
 ptr2=&a[2]; 
 i = (int) (ptr2-ptr1);
� �
� � � � � � � � � " � & � � � fi % �
� �
 (ptr2-ptr1)
� � � � � " � ff 
 � � � � ffi � � � � �
ptr_diff_t
* ff � � � � 0 ffi � ! � " � ffi � � 
stddef.h
#
	 #
 
? � ffi � 
 � � & � 
 � � � � �
-
ff � � " ffi � � � � � � � � ffi � � � � � � � & � � " � � � $
>, >=, <, <=, ==, !=
. � � " � � � � � �
ffi � 
 � � 
 � � � � � ffi � � ffi � * ff � � " ffi � � � & � 
 � � 
 � " � � � ffi � 
 � � 
 � 
 � � � � 2 #
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
 #
 
? � ffi � 
 � � � ! � & � ff � � � � � � � ff � fi fl � � � " � � � � � " � � � � � � ffi � � ffi � * ff � (
 # � #
 
> � � � " � � � � � � � � � � 
 ffi � 
 � � 
 � � � � � /
 #� #
 
� � ff � � � 2 � ff 
 � ffi � � � � � ff � " � � � �
�
� � � � � fl � � /
(void *)
� �
� � " � � � � � � � � � � � � ffi
� �
0 /* ou */ NULL
� �
� � " � � � � � " ff �
� �
� � < � � � � = � < � � : � : � � � � �
� .
int x, *ptr_x, y; 
 ptr_x=&x; 
 *ptr_x=0; 
 y=*ptr_x+3; 
� .
void swap( int *, int *); 
 int main() { 
 int i=1, j=2; 
 printf("i:%d, j:%d \n",i,j); 
 swap(&i,&j); 
 printf("i:%d, j:%d \n",i,j); 
 return 0; 
 }; 
 void swap( int *x, int *y) { 
 int tmp; 
 tmp=*x; 
 *x=*y; 
 *y=tmp; 
� �
7 5 6 5
 � � � : 9 � =
+
 � ff 
 � � � � � " � 3 ff 
 � � � � � ffi � & � � � & � � � � � $ & ff � � � � � 
 � � � � � fi % � ffi � � � � 0 � � � � & � � � & � � �
� � � 
 � " � ffi � �
'\0'
$ & ff � � & ' ffi � � � " ff 
 3 � � & � 3 2 � � � # ? � ffi � 
 � � & � � � � ff 
 � � � � � " � � � & � � � � " ffi �
: 
� � � � �� � � � �� � fl � � � � � � � � � � � � � � 
char str[]={'a','b','c','\0'}; 
> � � � � 
 � � � � � � � � � � � � � � � � � & � � � � $ � � � � � 3 � ffi � �
�
� � � � � fl � � & � 
 � � � � � ff � " � � (
 
char str[]="abc"; 
� � � � � 3 � � " � & � & � " ffi � � & � " ffi � " & � � * ff � � � ! � 2 
 � � � � � " � � $ � � � � � � � 
 � " � � � � � � � � � � " � � �
� � � � � ffi � � � � � � � # 1 " � & � � � 0 � � � ff � � � � � ! ff " fi fl � � ffi � � � � � � � � & �
<string.h>
� � � � 
 � " � � ff � �
� � � � " � � #
? � � �
�
� 
 � � $ �
�
� � � � ff 
 � ! ff " fi % � " � � � � � � � �
string, strlen
$ * ff � � � � � � " � � & � 
 � � � 
 � " � � ffi �
ff 
 � � � � � " � $ � # � # $ � � � � � " � � " � 
 � � � ffi � & � � � & � � � � � �
�
& � � � ff � " ffi � � & � � � & � � � � � 
 � " � ffi � � #
+
� � �
! ff " fi % � � � ffi � � 0 � � � � 
 � � 
 � " � � ffi � ffi � ff 
 � ffi � � ! � � 
 � � � � � ff � " � � � (
 /* 1ª Versão: usando arrays */ 
 int strlen1( char s[]) { 
 int len=0; 
 while (s[len])len++; 
 return len; 
 }; 
 /* 2ª Versão : usando ponteiros */ 
 int strlen2( char *s) { 
 char *p=s; 
 while (*p) p++; 
� �
� * ff � � � �
 a while (*p !='\0') p++; 
� �
 return p-s; 
 }; 
 /*Programa de teste */ 
 int main() { 
 char str[]="abc"; 
 printf(%d",strlen2(str)); 
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
 return 0; 
 }
� � ffi ff � � �
�
� � � � � fl � � � � � ff � " � � � � % � � 
 � � � � 0 � ffi � � � � � � � � � � � � ffi � � % � ffi � � � � � � � 
 � � � ff " �
 � � " � � " ffi � ffi � � �
 char str[]="abc"; /* array */ 
 char *ptr="abc"; /* ponteiro */
? � � � � � � 
 � � � ffi � � � � & � � � � � � � � � � � ffi � ! � � � " fi � � � " � � � ff 
 � � � � � � ff 
 � � " � � � � � $ � � � � 
 � � � �
ffi � ! � � � " fi � � � " � � � � � �
�
� � � � � fl � � � & � 
 � (
� #
 
� � 
 � � � " � � � � � ! � & � 
 � � & � 
 ff 
 � � � � � 0 � � * ff � � � ffi � 
 � � 
 � " � � ff � � $
�
�
�
# $ � � ffi � 
 � �
� � & � � � � �
ptr++
# > � " ffi � � � fi � ffi � � � � � � 3 � � � � � ffi � & � 
 � ff 
 � & � " � � � " � � # � � 
 � � � 
 � � $ 3
� � � � � � & � � � � �
str++
#
� #
 
� � 
 � � � " � � � � � � � ffi � 
 � � ! � 2 � � � � � � � ff � fi fl � � ffi � � � � �
 ptr="zybaz"; 
& � 
 � � � � � � � � � " � � 3 � � � � ) � � � � � � � � ff � fi % � � � 
 � " � � � � � 
 � " � � /
	 #
 
� � 
 � � � " � � � � � � � � " � � 3 � � � � � � � ffi � � � � � fi � � � � � & � " � � � ff 
 � " ffi � � � fi � #
 #
 
� � 
 � � � � � � 3 � � � � � � � ffi � � � � � � fi � " � & � � � 0 � � � � � � � � ff � � ffi � � 	 � � & � � � & � � � � � #
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
7 5 � 5
 � � 9 � < : � � = � � � � � � 9 = � � 9 � < =
> " ffi � � � 3 � * ff � � � & � � � � 
 � �
#define N 10 
� � ffi � � ) � 
 � � � � � � � & � � � �
const int n=10; 
� � � � 3 $ � � ffi � � � � 
 � � � � � ffi � & � � � ffi �
n
& � 
 � ff 
 � & � " � � � " � � � " � � � � � #
� � & � " � � � " � � � � ' � � ffi � 
 � � � � " ffi � � � fi � ffi � � � � � � � " � � � � � � � � � � & � " � � � " � � � / � � � � � � � � � 
 * ff �
& � " & � � ffi � � #
 const int *ppci=&n; /* ppci: ponteiro para constante inteira */ 
> � � � " � � � � � � � � � � & � " � � � " � � � � � ffi � 
 � � � � � � � � ffi � � � � � � � " ffi � � � fi � � � ff � � � & � " � � � " � � � ff
� � � � 0 � � ffi � � � � � ffi � & � � � ffi � � " � & � � 
 � " � � # > � � � � � " ffi � � � fi � ffi � � � � ff 
 � � " � � � � � � � � �
& � " � � � " � � " % � � � ffi � � � � � � � � � ffi � #
int i=3; 
ppci=&
�
� �
> �
� �
+
 � � � �
i
" % � � � � � & � " � � � " � � $ � � � ff � � � � " % � � � � 0 � � � � � ffi � � � � � � 3 � ffi �
ppci
#
7 5 � 5
 � � 9 � < : � � = � � 9 = � � 9 � < =
�
� & � 
 � � 
 * ff � * ff � � � ff � � � � � � � ffi � & � " � � � " � � $ � � � � � ffi � ff 
 � � " � � � � � & � " � � � " � � " % �
� � ffi � � � � � � � � � ffi � #
�
� & � � � � � � ff 
 � � " � � � � � & � " � � � " � � ffi � � � � ff � " � � ! � � 
 � (
int i =4; 
 int * const pcpi =&i; 
 pcpi = &i; /* ERRO */ 
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
� % � 3 � � � � ) � � � � � � � � � � � � � ffi � ff 
 � � " � � � � � & � " � � � " � � # � � � " � � " � � $ 3 � � � � ) � � � � � � � � �
� � � � � " ffi � � � fi � ffi � � � � � � " � � � � � & � " � � � " � � #
7 5 � 5
 � � 9 � < : � � = � � 9 = � � 9 � < = � � � � � � 9 = � � 9 � < =
� � 
 � � � � � � ffi � � � � � � � � $ " ff 
 � � " � � � � � & � " � � " � � � � � � & � " � � � " � � $ " % � 3 � � � � ) � � � � � � � �
" � 
 � � � � � � " ffi � � � fi � ffi � � � � � � " � � � � � " � 
 � � � ' � � � � � � " � � � � � # � ffi � & � � � fi % � ffi � � � � � � � �
ffi � � � " � � � � � � 3 ! � � � � & � 
 � � � � � � ff � (
 
 const int ci=1; 
 const int * const pcpci=&ci; 
� � � � ffi � � � � � 0 � � � � � " � � ffi � � � � � ffi � � � " � � � � �
7 5 � 5
 � � 9 � < : � � = � � � � � � 9 � ; < =
> � " ffi � � � fi � ffi � 
 � 
 ' � � � � " ffi � & � 
 � fi � � & ' ffi � � � ffi � ff 
 � ! ff " fi % � � � 
 � 3 
 � � ffi � � � �
� ff � � ffi � ffi � " ff 
 � � � � � 0 � � # � � � � 3 ! � � � � ff � � " ffi � � � " � � � � � � � � � � ! ff " fi fl � � #
�
� & � 
 � � � ffi � � � � � ff � � � � � � � � � ffi � � � " � � � � � � $ � � � � " � � � � � � � � � � ! ff " fi fl � � � � 
 � 3 
 � � ffi � 
� � � � � � � � ff ) ffi � � $ � � � � � ffi � � � � � � ! ff " fi fl � � � ff � � � � � " � ffi � � ffi � ! ff " fi fl � � #
� ffi � & � � � fi % � ffi � ff 
 � � " � � � � � � � � � ! ff " fi % � � � � � � � � * ff � � � � � � � & � ! � * ff � � � � � � ffi � � � � � � " � �
� � � � � ffi � � � � ff 
 � " � � � ffi � ! ff " fi % � # � � 
 � �
�
� 
 � � $ & � " � � ffi � � � � � ! ff " fi fl � �
min
�
max 
ffi � ! � " � ffi � � � � � �
�
� & � 
 � (
 int min(int a, int b) { 
 return (a<b ? a : b); 
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
 } 
 
 int max(int a, int b) { 
 return (a > b ? a : b) ; 
 } 
,
 � � " � � � � � � � � � � � � � � � � � � � ffi � ! ff " fi fl � � $ � # � # $ ff 
 � � " � � � � � � � � � ! ff " fi fl � � ffi � �
� � � ff 
 � " � � �
int
* ff � � � � � � " � 
int
3 ffi � & � � � ffi �
-
� � " � & � � � 2 � ffi � � 2 � � � . & � 
 � � � � � � ff � (
 int (*pf)(int, int)=0
/
 
 
� � � � * ff �
 int *pf(int, int) 
3 � ffi � & � � � fi % � ffi � ff 
 � ! ff " fi % � * ff � � � � � � " � ff 
 � � " � � � � � � � � �
 int. 
 
�
� & � � � " ffi � & � � � � & � � 
 � " � �
pf
� � ffi � 
 � � � � � � � ff � � � 	 � � � " ffi � � � fi � ffi � �
� � �
�
� �
�
! ff " fi % �
& � 
 � � � ) � � � 
 � � � � ffi � � � � � � " � � � � � ff 
 � " � � � & � 
pf
#
+
 � � � � � & ff � � � � ffi � 
 � � ! � 2 � � �
� � � ff � " � � � � � � � � ff � fi fl � � (
 
 pf = max; /* equivalente a pf=&max; */ 
 pf = min; 
 
� � " � � & � fi % � � ff & 	 � 
 � ffi � ffi � ff 
 � ! ff " fi % � � � � � � 3 � ffi � � � ff � � " � � � � � 3 ! � � � � ffi � � � � ff � " � �
! � � 
 � (
 f() { 
 int a, b; 
 a=min(10,20); /* Chamada directa à função */ 
 b=pf(10,20); /* Chamada à função através do seu ponteiro, */ 
 /* e a abreviação de (*pf) (10,20); */ 
 }; 
�
� ffi � � " � fi % � ffi � � � " � � � � � � � � � ! ff " fi % � � � � � � ff " � � � ) � � & � � � � ff � " � � 3 ( � ff � ff � � � ffi � ffi � � � 0 � � & �
� � 
 � � � � " � � � � � � � � � � ! ff " fi fl � �
�
+ �
� � � � 
 
 ff � � � � � � � & � fi fl � � $ � � ff 
 � � ffi � � * ff � � � � � � � 
 � �
� � � � � ff " � ffi � ffi � ffi � � � � � & � � � � � � " � � ffi � � �
�
� � # � � 
 � � � � 
 � � � � �
�
� 
 � � ffi � � � � & � fi % �
� � � � �� � � � �� � fl � � � � � � � � � 	 	 � � � 
& � 
 � & � 
 � � � � � " � � � � * ff � $ � � � � ff 
 � ffi � ffi � � � � � ff � ff � � ffi � ffi � ffi � � $ �
�
� � � � ff 
 � � � " ffi � " � 
 � � �
ffi � � � � � � � 
 � � * ff � � � � & � � � � 
 � � � � � ff � ff � � $ 
 � 
 � � � � 
 � 
 � � � $ � � � & � " ffi � ff 
 � ffi � ffi �
! ff " fi % � � & � ffi � 
 � 
 � � � ffi � � � � � ff � ff � � # � � " � & � ffi � ! � � � " fi � * ff � � � � � � � � � � � � 
 � � � � 
 � " � � � � �
3 � ! ff " fi % � * ff � � � � & � 
 � � � 
 � 
 � � � ffi � � � � � ff � ff � � # > � � � � � � � 
 � � * ff � � � � � � " � 
 �
 0
�
� 
 � $ � 
 ) " � 
 � $ � � � 
 � $ � ff � � � ffi ff � � ffi � � � � 
 � " � � � ffi � ff 
 � � � � � � % � � � � � � " � ff � � ffi � �
�
�
� 
 � � � 
 � � � � � � ffi � " � � � ffi � * ff � � & � � � 
 � � ffi � ffi � � & � � � � � #
+
 � � 2 ffi � �� � � � 
 � � � ffi ff � � & � �
& ' ffi � � � � � & � � � � " ffi � ff 
 � ! ff " fi % � � � � � � � � � � " � � � 
 ) " � 
 � ffi � � � � � � $ � ff � � � � � � � & � & ff � � �
 0
�
� 
 � $ � ff � � � � � � � & � & ff � � � � � 
 � � � ff � � � � � " ffi � � � � � & � & ff � � � � � � ffi ff � � $ � � ffi � 
 � �
� � & � � � � � ff 
 � � " � & � ! ff " fi % � * ff � � & � � � � & � 
 � � � � ff 
 � " � � ff 
 � � " � � � � � � � � � ff 
 �
-
� � � ff " ffi � .
! ff " fi % � � � � � & � � � � � � � 
 � " � � � ffi � � � � � � #
+
� � � � � � � " � � � � � 3 � ff � � � � ffi � " � � � � � � � 
 � � � � �
�
�
� � � � � � & � � � � ffi � 
 0
�
� 
 � � ffi � 
 ) " � 
 � #
�
include <stdio.h> 
 int min(int, int); 
 int max(int, int); 
 int calcula(int (*) (int, int), int*, const int); 
 
 int main() { 
int a[]={1, 2, 3}; 
const int n = sizeof(a) / sizeof(int); 
 int maximo, minimo; 
 maximo = calcula(max, a, n); 
 minimo = calcula(min, a, n); 
 printf("min: %d - max: %d \n", minimo, maximo); 
 return 0; 
 }; 
 int calcula(int (*pf) (int, int), int *a, const int n) { 
 int i, res=a[0]; 
 for (i=1; i<n; i++) res = pf(res, a[i]); 
 return res; 
 }; 
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
? � � � � 3 
 ffi � ff 
 � � ff � � � 2 � fi % � � � � ffi � " � � ffi � & ' ffi � � � $ � � � � � � � � " � � � � � ! � & � � � � � 
 � " ff � � " fi % �
ffi � & ' ffi � � � # 1
-
 ff � � � . 
 � � � ! 0 & � � � � � � � ff 
 � � " � & � ! ff " fi % � � " � & � � � ffi � �
�
� 
 � � �
! ff " fi % �
calcula
� ffi � * ff � � � � � � � � � fi fl � � ffi � � � � ! ff " fi % � � ff 
 � � � � � � 
 ) " � 
 � $ � ff � � � � � � � �
 0
�
� 
 � $ � � & #
7 5 � 5
 � � 9 � < : � � = � � � � < = � � � � � � � =
? � � � � & � ffi � � � ff 
 
 � 
 � � � ffi � ffi � ffi � � ffi � ff 
 � � � � � ff � ff � � � � � � � 3 � ffi � ff 
 � � " � � � � � ff � � � 2 � � � � �
� � � � � ffi � �
->
$ & � 
 � " � �
�
� 
 � � � � � �
�
� #
 typedef struct { float x, y; } point; 
 point p, *pp; 
 p.x=0.0; 
 pp=&p; 
 pp->y=0.0; 
 
� " ffi � � � � � 
 � �
�
� � � � � % � � � 
 � 
 � � 
 � � ! � � � � ffi � * ff � (
 
 (*pp).y=0.0; 
7 5 � 5
 � � � � � = � < � � 9 � < : � � =
�
� 
 � � 
 � ! � � 
 � * ff � ff 
 � � � � � ffi � � � " � � � � � � 3 ffi � & � � � ffi � � � � (
int ai[5]; 
� � 
 � 3 
 * ff � ff 
 � � � � � ffi � � � � � " � � ffi � � � � � � � � � " � � � � � � 3 ffi � & � � � ffi � & � 
 � (
int*api[5]; 
+
" � % � & � 
 � � � � 0 � ffi � & � � � fi % � ffi � ff 
 � � � � � ffi � ! � � � �
�
+
ffi � � � � � ff � ff � � � ffi � � � " � � �
�
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
� � � � � � � * ff � � � � � � �
api
� � 
 � � � � fi � � � � � � ff � � ffi � � � � " ffi � � � fi � � ffi � � " � � � � � � / � " % � � � � �
� ff � � ffi � � � � � � ' � � � � � � " � � � � � � #
� � 
 � � � � 
 � � � � �
�
� 
 � � ffi � ff � � � 2 � fi % � ffi � � � � � � � ffi � � � " � � � � � � $ � � � � � � � � ! ff " fi % � * ff �
� � � � � " � � & � " � � � " � �
“false”
� � � � � � � 
 � � � �
n
! � � � � � � � � � " � � & � " � � � " � �
“true”
& � � �
& � " � � 0 � � � #
const char* bool (int n) { 
static const char * names[]={"false", "true"}; 
return (n? names[1]: names[0]); 
}; 
> ff � � � � � 
 � � 
 � " � � fi fl � � � � � � � 
 � � ff � 
 � " � � � � � � ) � � � � # � � � " � � " � � $ � � � � � 
 � � 
 � " � � fi % �
� � � � & � � � � ! � & � 
 � " � � 
 � ffi � ! � & 0 � � � � � � � ffi � � & � 
 � � � � � 
 � � � � 
 � 	 � " � � � # � � " % �
� � � � 
 � � ( � � � � � � ! ff " fi % � � & � 
 � ffi � ! � � 
 � � * ff � � � � � � " � ff 
 � � � � � " � & � 
 � " � 
 � ffi � ff 
 � � ffi � ffi � ff 
 ) " ffi � & � � " � � � � � � " � � � � � � � # � � � ff � � 
 � " � � $ � � � � � � � � " � � � � " � � � � � � �
� � � � � � � " � �
�
� 2 � 
 � � � #
� � � � � � � & 	 � � �
static
� � � � � � � � 
 � � ffi � � � ffi � ffi � � � � � 0 � � 
names
# � � 
static
$ � � � 
 � � ffi �
� � ffi � ffi � ff 
 � � � � � 0 � � ffi � & � � � ffi � " � � " ) & � � ffi � ff 
 � � & �
-
ffi � & � � � fi % � � " � � � " � � ff � & � .
� � � 
 � " � " � ! � 
 ffi � � � & � # � � 
static
$ � � � 
 � � ffi � � � ffi � ffi � ff 
 � � � � � 0 � � � & � � ff 
 �
! ff " fi % � � " � & � � � � � * ff � " ffi � � ! ff " fi % � 3 & 	 � 
 � ffi � � � � � � � 
 � � � � � � 2 � � � � 
 � " � " � ! � 
 ffi �
�
�
� & ff fi % � ffi � � � � � � � 
 � $ � � " ffi � � � � ff & � " � � � ffi � � � � � � � � � ffi � � " � � � � � & 	 � 
 � ffi � � 
 ! ff " fi % � #
� � � " � � " � � $ � � � � � 0 � � & � " � ) " ff � � � � � � & � $ �
�
�
�
$ " % � � � � 0 � & � � � ) � � ! � � � ffi � ! ff " fi % � � " ffi � 3
ffi � ! � " � ffi � #
7 5 4 � 5
 � � � � � < 9 � � = � � � � 9 � � � � � : 9
�
� � * ff � " � � 
 � " � � � � 
 � � * ff � � � � & 	 � 
 � � ff 
 � � � � � � 
 � � � & � � � � " ffi � 
 ! � � " � � ffi � � � ff " � 
 �
ff 
 � ff 
 � � � � � � ff 
 � " � � � #
,
 & � � � 
 ff � � � � � 
 � � � � 
 * ff � � � � � � � ffi � � � � � � � 3 � � � � ff � " � � (
� � � � �� � � � �� � fl � � � � � � � � � 	 
 � � � 
& 	 � 
 � � ff 
 � � � � � � 
 � * ff � & � & ff � � ! � & � � � � � � � & � � � � " ffi � 
 ! � � " � � ffi � � � ff " � 
 � � � " � � � � �
� � � � � � � � � � � � � * ff � * ff � � � 
 � � � � � � � � ! � & � � � � � $ & � 
 � � 
 (
> fact 3 
6 
+
 � � � � � & � 
 � � � � � 
 � " � � 3 & � " � � � ff � ffi � � � & � � � � " ffi � � � � � � � ff 
 � " � � � ffi � ! ff " fi % �
main
#
� ff � " ffi � � ! ff " fi % �
main
3 & 	 � 
 � ffi � $ 3 & 	 � 
 � ffi � & � 
 � � � � ff 
 � " � � � (
� #
 argc
� * ff � & � " � 3 
 � " � 
 � � � ffi � � � � ff 
 � " � � � & � 
 * ff � � � � � � � � 
 � 3 & 	 � 
 � ffi � � �
-
* ff � 3 � � � � � � � � � " � 
 � ffi � � � ' � � � � � � � � � � 
 � . # � � � � 
 $ " � �
�
� 
 � � � & � 
 �
argc
� � � � � � � � � � � #
� #
 argv
� * ff � 3 ff 
 � � � � � ffi � � � � � " � � $ � " ffi � � � � � 
 � � � � � � 
 � " � � � � 
 � " � 
 � ffi �
� � � � � � 
 � �
�
� & ff � 0 � � � � � � � � � � " � � � � � 
 � " � � � & � " � � 
 � & � " � ff " � � ffi � � � � ff 
 � " � � �
& � 
 * ff � � � � � � � � 
 � ! � � & 	 � 
 � ffi � # � � �
�
� 
 � � � & � 
 � $
argv[0]
� � � � � � � � � � " �
"fact"
�
argv[1]
� � � � � � � � � � " �
"3"
-
� � 
 $ � � 
 ff 
 � � � � � " � / " % � � � " � � � � � 	 . #
� � � � 
 $ � � * ff � � � � 
 � � � � & � � � � � ff 
 � � � � � � 
 � * ff � � � & � � � � " � � & � %
-
" �
stdout
� � � � � � � 
 � �
 � � � � � � & � � � � . � � � ff � � ' � � � � " � 
 � � � � � � � ff 
 � " � � � & � 
 * ff � ! � � & 	 � 
 � ffi � $ � � ffi � � � 
 � �
� � & � � � � � (
 int main(int argc, char *argv[]) { 
 int i; 
 printf(“O meu nome e os argumentos com que foi chamado são: \n”); 
 for(int i=0; i < argc; i++) printf(" %s \n",argv[i]); 
 return 0; 
 }; 
�
� * ff � � � � � � ! � � " � � � � � 
 � � � � � 
 ff � � � � � � � � � ff " � ffi � ffi � � ffi � ff � � � � � � � 
 � & � " � � 
 � � � � � ! � 2 � �
� " � � � ffi � ffi � ffi � ffi � � " � � � � � � � � 
 � � * ff � � � � 
 � � ffi � � � " � � � � � #
� � � � �� � � � �� � fl � � � � � � � � � 	 � � � � 
7 5 4 4 5
 � � < � � � � : � =
� #
 �
� ffi � ff 
 � � & � � � ffi � � " � � � � � � & � 
 "
�
� � � 
 � " � � � $ & � " � � � ff � ff 
 � ! ff " fi % � * ff � � � � � ! � * ff �
� � (
� .
 
+ �
� � � � 
 � � 
 � " � � � ffi ff � � & � ffi � � #
� .
 
� � � * ff � " & � � ffi � � � 
 � " � � � 3 � � � � � � � 
 � " � � 
 � " ' � � " � $ �

Outros materiais