Buscar

Beginning C- Traduzido

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

Www.it-ebooks.info 
 
 
Www.it-ebooks.info 
Para sua conveniência Aprima colocou algumas das frente questão 
material depois do índice. Por favor use os marcadores e o 
conteúdo num ápice links para acessá-los. 
 
Sobre o Autor xxi 
Sobre o revisor técnico xxiii 
Reconhecimentos xxv 
Introdução xxvii 
■ Capítulo 1: programação em C 1 ■ Capítulo 2: Primeiros Passos na 
programação 25 
■ Capítulo 3: Decisões 85 
■ Capítulo 4 loops: 135 
■ Capítulo 5 Matrizes: 185 ■ Capítulo 6: Aplicativos com strings e texto 219 
■ Capítulo 7: Indicadores 263 ■ Capítulo 8: a estruturação de seus 
programas 321 
■ Capítulo 9: Mais sobre as funções 349 ■ Capítulo 10: essenciais de entrada 
e de saída de 395 ■ Capítulo 11: Estruturação Dados 429 ■ Capítulo 12: 
Trabalhando com arquivos 489 ■ Capítulo 13: O pré-processador e 
depuração 557 
■ Capítulo 14: Tópicos avançados e especializados 589 
Visão geral do 
conteúdo
 
Www.it-ebooks.info 
V 
■ conteúdo num relance 
■ Apêndice A: Calculador média aritmética 621 ■ Apêndice B: As definições de 
código de caractere ASCII 629 ■ Apêndice C: palavras reservadas em C 635 
■ Apêndice D: entrada e de especificações de formato de saída 637 ■ Apêndice 
E: Padrão de biblioteca arquivos de cabeçalho Índice 643 645 
 
Www.it-ebooks.info 
Vi 
Bem-vindo ao início C: Quinta Edição. Com este livro você pode se tornar uma autoridade programador C usando a versão 
mais recente da linguagem C. De muitas maneiras, C é uma linguagem com a qual ideal para saber a programação. É muito 
compacto, por isso não há um lote de sintaxe para aprender antes de você pode escrever aplicações reais. Apesar de sua 
concisão, é extremamente potente e é utilizada por profissionais de diversas áreas. O poder do C é tal que ela pode ser 
aplicada a todos os níveis, desde o desenvolvimento de drivers de dispositivos e componentes do sistema operacional para a 
criação de aplicações de grande escala. Um domínio relativamente novo para C está no desenvolvimento de aplicativos para 
telefones móveis. 
Os compiladores C também estão disponíveis para praticamente todos os tipos de computador, de modo que quando 
você aprendeu C, você estará equipado para programar em apenas cerca de qualquer contexto. Quando você souber C, 
você tem uma excelente base a partir da qual você pode construir um entendimento da orientação a objetos C++. 
O meu objectivo neste livro é minimizar o que eu acho que são os três principais obstáculos os aspirantes programador 
deve enfrentar: enfrentar com o jargão que permeia cada linguagem de programação, a compreensão de como utilizar a 
linguagem elementos (em oposição ao saber que são), e apreciando a forma como a língua é aplicado em um contexto 
prático. 
Jargão é de um valor incalculável e praticamente indispensáveis meios de comunicação para o profissional 
especializado bem como a autoridade de amador, portanto ele não pode ser evitado. A minha abordagem é garantir que você 
entenda o jargão e ficarem confortáveis usando em contexto. Desta forma, você vai ser capaz de utilizar de forma mais 
eficaz a documentação que vem junto com o produto típico de programação e também se sintam confortáveis de leitura e de 
aprendizagem da literatura que rodeia a maioria das linguagens de programação. 
Compreender a sintaxe e os efeitos do elementos de linguagem é obviamente uma parte essencial da aprendizagem C, 
mas apreciando como o recursos de linguagem funciona e como eles são utilizados é igualmente importante. Em vez de 
apenas usando os fragmentos de código, eu lhe fornecer exemplos de trabalho prático em cada capítulo que mostram como 
os recursos de linguagem podem ser aplicados a problemas específicos. Estes exemplos fornecem uma base para você para 
experimentar e ver os efeitos de alterar o código. 
Sua compreensão da programação no contexto precisa ir além da mecânica da aplicação de elementos de linguagem 
individual. Para ajudar você a obter essa compreensão, concluo a maioria dos capítulos com um programa mais complexo 
que se aplica o que você aprendeu no Capítulo. Estes programas irão ajudar você a ganhar a competência e a confiança para 
desenvolver seus próprios aplicativos e fornecer a você uma visão geral de como você pode aplicar elementos de linguagem 
em combinação e em uma escala maior. O mais importante, eles vão dar uma ideia do que está envolvido na concepção de 
programas e o gerenciamento real código real. 
É importante perceber algumas coisas que são verdadeiras para a aprendizagem de qualquer linguagem de 
programação. Em primeiro lugar há muito a aprender, mas isso significa que você vai obter um maior sentimento de 
satisfação quando o dominares. Segundo, é muito divertido para que você realmente vai desfrutar. Terceiro, você só pode 
aprender programação por fazê-lo, e este livro ajuda você ao longo do caminho. Por último, certos você vai fazer um monte 
de erros e a frustração de ter de vez em quando durante o processo de aprendizagem. Quando você pensa que são 
completamente bloqueado, você só precisa ser persistente. Você acabará por experiência que neste momento eureka e 
perceber que não era tão difícil como você pensava. 
Introdução 
 
Www.it-ebooks.info 
Xxvii 
■ INTRODUÇÃO 
Como utilizar este manual 
Porque acredito na abordagem hands-on, você vai escrever o seu primeiro programas quase imediatamente. Cada capítulo tem 
vários programas completos que colocar a teoria na prática, e estes são a chave para o livro. Você deve digitar em e execute 
todos os exemplos que aparecem no texto porque o próprio acto de digitá-las na memória é uma enorme ajuda. Você também 
deve tentar todos os exercícios que aparecem no final de cada capítulo. Quando você chegar a um programa de trabalho para a 
primeira vez - particularmente quando você está tentando resolver seus próprios problemas - você verá que o grande senso de 
realização e de progresso faz tudo valer a pena. 
O ritmo é suave no início, mas você vai ganhar impulso como você obtenha mais no assunto. Cada capítulo cobre um lote 
de terreno, para levar o seu tempo e certifique-se de que você compreende tudo antes de passar. Experiências com o código e 
experimentar as suas próprias ideias são partes importantes do processo de aprendizagem. Tente modificar os programas e ver 
o que mais você pode fazer deles fazer - que é quando fica muito interessante. E não tenha medo de experimentar as coisas - se 
você não entender como algo funciona, basta digitar algumas variações e ver o que acontece. Não importa se é errado. Você 
encontrará muitas vezes você aprender muito de obter errado. Uma boa abordagem é ler cada capítulo através, ter uma ideia do 
seu âmbito de aplicação e depois voltar e trabalhar em todos os exemplos. 
Você pode encontrar alguns de final de capítulo programas bastante difícil. Não se preocupe se não todos completamente 
claro na primeira tentativa. Não são obrigados a ser bits que você encontrar dificuldade para compreender a primeira porque 
eles muitas vezes aplicar o que aprendeu para problemas bastante complicado. Se você realmente ficar preso, você pode 
ignorar o final do capítulo exercícios, passar para o próximo capítulo, e voltar a eles mais tarde. Você pode até mesmo passar 
por todo o livro sem se preocupar com eles. No entanto, se você pode completar os exercícios, ele mostra que você está a fazer 
progressos reais. 
Que este livro é para 
Início C: Quinta Edição é projetado para ensinar a você como escrever programas úteis em C como rapidamente e facilmente 
possível. Até o final de início C, você terá um profundo aterramento na programação a linguagem C. Este é um tutorial para 
aqueles que fizemos um pouco de programação antes de entender os conceitos por trás dela e deseja ampliar seus 
conhecimentos mediante a aprendizagem de C. No entanto, nenhum conhecimento de programação anterior de sua parte é 
assumido, portanto, se és um novato na programação, o livro ainda irá trabalharpara você. 
O que você precisa para usar este livro 
Para usar este livro, você precisará de um computador com um compilador C e biblioteca instalada para que você possa 
executar os exemplos e um programa editor de texto para preparar seu código fonte de arquivos. O compilador que você 
usar deve fornecer um bom suporte para a actual norma internacional para a linguagem C, ISO/IEC 9899:2011, comumente 
referida como C11. Você também precisa de um editor para a criação e modificação de seu código. Você pode usar qualquer 
editor de texto simples como o Bloco de Notas ou vi para criar sua fonte os arquivos de programa. No entanto, você obterá 
melhor se o seu editor é projetado para edição do código C. Posso sugerir duas fontes para um compilador C adequado, que 
são ambas freeware: 
• O compilador C GNU, CCG, está disponível http://www.gnu.org e suporta uma grande variedade de ambientes 
de sistema operacional. 
• O compilador C Pelles para Microsoft Windows é transferível a 
partir http://www.smorgasbordet.com/pellesc/ e inclui uma excelente IDE. 
http://www.gnu.org/
http://www.smorgasbordet.com/pellesc/
 
Www.it-ebooks.info 
Xxviii 
■ INTRODUÇÃO 
Convenções usadas 
Eu uso um número de diferentes estilos de texto e de layout no livro para ajudar a distinguir entre os diferentes tipos de 
informações. Para a maior parte dos seus significados serão óbvias. Código de Programa será exibida como este: 
Int main(void) 
{ printf("INÍCIO C\n"); 
 Retornar 0; } 
Quando um fragmento de código é uma versão modificada de uma instância anterior, eu ocasionalmente mostrar as 
linhas que foram alteradas em negrito como este: 
Int main(void) 
{ 
 Printf("INÍCIO C por Ivor Horton\n"); 
 Retornar 0; } 
Quando o código aparece no texto, ele tem um diferente sublinhados esta aparência: duplo. 
Vou utilizar diferentes tipos de suportes de "" no código do programa. Eles não são permutáveis e suas diferenças são 
muito importantes. Vou consultar os símbolos ( ) como parênteses, os símbolos { } como suspensórios e os símbolos [ ] 
como parêntesis. 
Importante novas palavras no texto são mostrados em itálico como este. 
 
Www.it-ebooks.info 
Xxix 
 
1 
www.it-ebooks.info 
C é uma linguagem de computador potente e compacto que permite a gravação de programas que especificar exatamente o 
que você quer que o computador para fazer. Você está em carga: você criar um programa que é apenas um conjunto de 
instruções e o seu computador irá segui-las. 
Programação em C não é difícil, como você está prestes a descobrir. Vou ensinar a você todos os fundamentos de 
programação C em um agradável e fácil de compreender, e até ao final do presente capítulo vais ter escrito seu primeiro 
poucos programas em C. É tão simples quanto isso! 
Neste capítulo você aprenderá: 
• O que a linguagem C padrão é 
• O que é biblioteca padrão 
• Como criar programas em C 
• Como são organizados programas de C 
• Como escrever o seu próprio programa para exibir texto na tela 
A linguagem C 
C é extraordinariamente flexível. Ela tem sido usada para o desenvolvimento apenas sobre tudo que você pode imaginar 
por meio de um programa de computador, desde contabilidade aplicativos para processamento de texto e de jogos para 
sistemas operacionais. Não é só a base para as línguas mais avançados, como a C++, ele também é usado atualmente para 
o desenvolvimento de aplicativos de telefone móvel sob a forma de Objectivo C. Objectivo C é padrão C com uma fina 
camada de verniz da capacidade de programação orientada a objetos adicionados. C é fácil de aprender por causa da sua 
compacidade. Assim, C é ideal como primeiro idioma se você tem ambições para ser um programador. Você vai adquirir 
conhecimentos suficientes para a aplicação prática do desenvolvimento de forma rápida e fácil. 
A linguagem C é definido por um padrão internacional e a última é atualmente definido pelo documento ISO/IEC 
9899:2011. O padrão atual é comumente referida como C11, e a língua que eu descrever neste livro em conformidade com 
C11. Você precisa estar ciente de que alguns elementos da linguagem como definido pela C11 são opcionais. Isto implica 
que um compilador C que está em conformidade com a norma C11 não podem implementar tudo no padrão. ( compilador é 
apenas um programa que converte o programa escrito em termos que você compreender em uma forma o seu computador 
entende.) I irá identificar qualquer recurso de idioma no livro que é opcional medida C11 está em causa, apenas para que 
você esteja consciente de que é possível que seu compilador não pode apoiá-lo. 
Também é possível que um compilador C11 não pode implementar todos os recursos de linguagem mandatado pelo 
C11 padrão. É preciso tempo para implementar novos recursos de linguagem, para desenvolvedores do compilador será 
frequentemente tomar uma abordagem incremental para a sua execução. Isso fornece outra razão pela qual um programa 
pode não funcionar. Dito isto, posso confirmar a partir da minha própria experiência que o motivo mais comum para as 
coisas não funcionando em um programa C, pelo menos 99,9% do tempo é que se tenha cometido um erro. 
Capítulo 1 
Programação em C 
Chapter 1 ■ programming in C 
2 
www.it-ebooks.info 
A Biblioteca Padrão 
A biblioteca padrão de C também é especificado na norma C11. A biblioteca padrão define as constantes, símbolos e 
funções que você frequentemente precisa quando escrever um programa C. Ela também fornece algumas extensões 
opcionais para o basic C idioma. Máquina-dependente de comodidades como a entrada e a saída para o seu computador são 
implementados pela biblioteca padrão em uma máquina de forma independente. Isso significa que você gravar dados em 
um arquivo de disco em C da mesma forma no seu PC como faria em qualquer outro tipo de computador, embora o 
hardware subjacente processos são bastante diferentes. A funcionalidade padrão que a biblioteca contém inclui recursos que 
a maioria dos programadores são susceptíveis de necessidade, tais como o processamento de strings de texto ou de cálculos 
matemáticos. Isso economiza uma quantidade enorme de esforço que seria necessário para a implementação de tais coisas. 
A biblioteca padrão é especificado em um conjunto de arquivos padrão chamado arquivos de cabeçalho. Arquivos de 
cabeçalho sempre têm nomes com a extensão .h. Para tornar um determinado conjunto de recursos padrão disponíveis no seu 
arquivo de programa C, que você acabou de incluir o arquivo de cabeçalho padrão adequado de uma forma que eu vou 
explicar mais adiante neste capítulo. Cada programa que você escrever fará uso da biblioteca standard. Um resumo dos 
arquivos de cabeçalho que compõem a biblioteca padrão é no Apêndice E. 
Aprendizagem C 
Se você estiver completamente novo para programação, existem alguns aspectos da C que você não precisa aprender, pelo 
menos não a primeira volta. Estes são recursos que são bastante especializada ou utilizados com pouca frequência. Tenho 
colocar todos esses juntos no capítulo 14 de modo que você irá aprender sobre eles quando você estiver confortável com o 
resto. 
Embora o código para todos os exemplos está disponível para download a partir do site Aprima 
(http://www.apress.com), eu recomendo que você digitar em todos os exemplos no livro, mesmo quando eles são muito 
simples. Tecle stuff torna menos provável que você irá esquecer coisas mais tarde. Não tenha medo de experimentar com o 
código. Cometer erros é muito educativo na programação. Mais erros você fazer desde o início, o mais provavelmente você a 
aprender. 
A criação de programas em C 
Existem quatro etapas fundamentais, ou processos, a criação de qualquer programa C: 
• Edição 
• Compilação 
• Ligando 
• Execução 
Em breve você conhece todos esses processos como a palma da sua mão porque você vai ser a sua realização de forma 
muitas vezes. Primeiro eu vou explicar o que cada processo é e como ela contribui para o desenvolvimento do seuprograma 
C. 
Edição 
A edição é o processo de criação e modificação de código-fonte C-o nome dado ao programa instruções que você escrever. 
Alguns compiladores C vem com um editor específico programa que fornece um lote de assistência no gerenciamento de seus 
programas. De facto, um editor muitas vezes fornece um ambiente completo para escrever, gerir desenvolver e testar seus 
programas. 
Às vezes isso é chamado de um ambiente de desenvolvimento integrado (IDE). 
http://www.apress.com/
http://www.apress.com/
Chapter 1 ■ 
3 
www.it-ebooks.info 
Você também pode usar um editor de texto para criar seus arquivos fonte, mas o editor deve armazenar o código como 
texto simples sem qualquer custo formatação de dados incorporado. Não use um processador de texto como o Microsoft 
Word; processadores de texto não são adequadas para a produção de um código de programa devido ao acréscimo de 
informações de formatação eles armazenam juntamente com o texto. Em geral, se você tiver um sistema de compilador com 
um editor incluído, fornecerá um lote de características que o tornam mais fácil de gravar e organizar a sua fonte de 
programas. Normalmente haverá equipamentos automáticos para que o 
 Programação em C 
Texto de programa apropriadamente e cor destacando para importantes elementos de linguagem, que não só torna o código 
mais legível mas também fornece um indicador claro quando você cometer erros quando digitar tais palavras. 
Se você estiver trabalhando com Linux, o editor de texto mais comum é o editor de vim. Como alternativa você pode 
preferir usar o GNU Emacs editor. Com o Microsoft Windows, você poderia usar um dos muitos programas freeware e 
shareware editores de programação. Estes geralmente fornece ajuda para garantir que o código está correto, com realce de 
sintaxe e autoindenting. Também existe uma versão do emacs para Microsoft Windows. O vi e VIM editores de ambiente 
UNIX estão disponíveis para Windows e você pode até mesmo usar o Notepad++ (http://notepad-plus-plus.org/). 
É claro que você também pode adquirir um dos ambientes de desenvolvimento de programação criados por 
profissionais que oferecem suporte a C, tais como os da Borland ou Microsoft, caso em que você terá muito extensas 
capacidades de edição. Antes de desfazer com o seu dinheiro no entanto, é uma boa idéia verificar se o nível de C que é 
suportada em conformidade com a actual norma C, C11. Com alguns dos produtos que são destinados principalmente 
para desenvolvedores C++, C tem sido deixado um pouco para trás. 
Compilação 
O compilador converte o código fonte em linguagem de máquina e detecta e reporta erros no processo de compilação. A 
entrada para esta fase é o arquivo que você produzir durante a sua edição, que geralmente é referido como um arquivo de 
origem. 
O compilador pode detectar uma vasta gama de erros que são devido ao código de programa inválido ou não 
reconhecido, bem como os erros estruturais onde, por exemplo, parte de um programa nunca pode ser executado. A saída do 
compilador é conhecido como código de objeto e é armazenada em arquivos chamados arquivos de objeto, que 
normalmente têm nomes com a extensão .obj no ambiente Microsoft Windows ou .s no ambiente Linux/UNIX. O 
compilador pode detectar vários tipos diferentes de erros durante o processo de tradução e a maioria desses impedirá o 
arquivo de objeto do que está sendo criado. 
O resultado de uma bem sucedida compilação é um arquivo com o mesmo nome que usou para o arquivo de origem, 
mas com o .s ou extensão .obj. 
Se você estiver trabalhando no UNIX, na linha de comando, o comando padrão para compilar o seu C programas será 
cc (ou não da GNU UNIX [compilador GNU], que é .CCG). Você pode usá-lo como este: 
 
Cc -c myprog.c 
 
Onde myprog.c é o nome do arquivo de origem que contém o programa que você deseja compilar. Observe que se 
você omitir 
O sinalizador -c, o seu programa será automaticamente ligado como bem. O resultado de uma bem sucedida compilação 
será um arquivo de objeto. 
A maioria dos compiladores C terá uma opção padrão de compilar, seja a partir da linha de comando (como cc 
myprog.c) ou uma opção de menu a partir de dentro de um IDE (onde você encontrará uma compilação de opção do menu). 
Compilação de dentro de uma IDE é geralmente muito mais fácil do que usar a linha de comando. 
A Compilação é um processo de dois estágios. A primeira etapa é denominada a fase de pré-processamento, durante o 
qual o seu código podem ser modificados ou adicionados, e a segunda fase é a compilação real que gera o código objeto. 
Seu arquivo de origem podem incluir as macros de pré-processamento, que você usar para adicionar ou modificar o 
programa C declarações. Não se preocupe se isso não fazem todo o sentido agora. Ele virá para você como o livro progride. 
http://notepad-plus-plus.org/
Chapter 1 ■ programming in C 
4 
www.it-ebooks.info 
Ligando 
O vinculador combina os módulos objeto gerado pelo compilador a partir de arquivos de código fonte, adiciona o código 
exigido Módulos da biblioteca padrão fornecido como parte de C e as soldas tudo em um executável todo. O vinculador 
também detecta e reporta erros; por exemplo, se uma parte do seu programa está ausente ou é um componente da 
biblioteca de inexistente é referenciado. 
Na prática, um programa de dimensão significativa será composto de vários arquivos de código fonte a partir da qual 
o compilador gera arquivos de objeto que precisam ser ligados. Um grande programa pode ser difícil escrever em uma 
sessão de trabalho e pode ser impossível trabalhar com como um único arquivo. Quebrando em um número de pequenos 
arquivos fonte que cada proporcionar um enquadramento coerente de parte do que o programa completo, você pode tornar 
o desenvolvimento do programa muito mais fácil. Os arquivos de origem podem ser compilados separadamente, o que 
torna a eliminação de simples erros tipográficos um pouco mais fácil. 
Chapter 1 ■ 
5 
Além disso, todo o programa normalmente pode ser desenvolvido de forma incremental. O conjunto de arquivos fonte que 
compõem o programa irá ser geralmente sob o nome de um projecto integrado, que é usado para se referir a todo o programa. 
Bibliotecas de programa de apoio e de estender a linguagem C por fornecer rotinas para efectuar operações que não são 
parte da linguagem. Por exemplo, as bibliotecas contêm rotinas que apoio como operações de entrada e saída, cálculo de uma 
raiz quadrada, comparando duas cadeias de caracteres ou na obtenção de informações de data e hora. 
Uma falha durante a fase de vinculação significa que uma vez você voltar e editar o seu código fonte. Sucesso, por outro 
lado, irá produzir um arquivo executável, mas isso não significa necessariamente que o seu programa funciona corretamente. 
Em um ambiente do Microsoft Windows, o arquivo executável terá uma extensão .exe; no UNIX, não haverá tal extensão, 
mas o arquivo será de um tipo de arquivo executável. Muitos IDEs têm uma opção de construção, que irá compilar e ligar o 
seu programa em uma única operação. 
Execução 
A fase de execução é onde você executa o seu programa, tendo completado todos os processos anteriores com sucesso. 
Infelizmente, esta etapa também pode gerar uma grande variedade de condições de erro que pode incluir a produzir a saída 
errada, sentado lá e não fazer nada, ou talvez bater seu computador para uma boa medida. Em todos os casos, está de volta 
para o processo de edição para verificar seu código fonte. 
Agora para a boa notícia: esta é também a fase em que se o programa funciona, você conseguir ver o seu computador 
fazendo exatamente o que você disse para fazer! No UNIX e no Linux você pode digitar apenas o nome do arquivo que foi 
compilado e ligado para executar o programa. Na maioria dos IDEs, você encontrará um comando de menu adequado que 
permite executar ou executar o seu programa compilado. Este Executar ou executar a opção pode ter um menu de sua própria,ou você pode encontrar sob a compilar a opção de menu. No Windows, você pode executar o arquivo .exe para seu programa 
como você faria com qualquer outro executável. 
Os processos de edição, compilação, vinculação e execução são essencialmente os mesmos para desenvolvimento de 
programas em qualquer ambiente e com qualquer idioma compilados. Figura 1-1 resume como você normalmente passam 
por processos como você criar seus próprios programas em C. 
Chapter 1 ■ programming in C 
6 
 Programação em C 
 
Figura 1-1. Criação e execução de um programa 
Arquiv
o 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Chapter 1 ■ 
7 
Criando seu primeiro programa 
Vamos passo através de processos de criação de um simples programa C, entrem no programa código-fonte para executá-la. 
Não se preocupe se o que você digitar não significa muito para você nesta fase-eu vou explicar tudo ao longo do caminho. 
Experimente: UM EXEMPLO DE PROGRAMA DE C 
Execute o seu editor e digite o seguinte programa exatamente como ele é escrito. Tome cuidado 
para usar a pontuação exatamente como você o vê aqui. Certifique-se de que você insira os 
suportes que estão na quarta e última linhas como suspensórios-o cabelo encaracolado 
queridos {}, não os colchetes [ ] ou parênteses ( ) - é realmente importante. Além disso, 
certifique-se de que coloca o barras o caminho certo (/), como mais tarde você vai estar usando 
a barra invertida (\) bem. Não se esqueça do ponto e vírgula (;). 
 
Programa /* 1.1 O Primeiro Programa C - Exibindo Olá mundo */ 
#include <stdio.h> 
 
Int main(void) 
{ 
 Printf("Olá mundo!"); 
 Retornar 0; 
} 
 
Quando tiver introduzido o código-fonte, salvar o programa como hello.c. Você pode usar 
qualquer nome que você gostaria em vez de olá, mas o ramal deve ser .c. Esta extensão é a 
convenção comum quando você escrever programas em C e identifica o conteúdo do arquivo 
como código-fonte C. A maioria dos compiladores esperam que o ficheiro de origem para ter a 
extensão .c, e se não, o compilador podem recusar a processá-lo. 
Próximo você compilar seu programa como descrito na seção "compilação" anteriormente neste 
capítulo e depois vincular as peças necessárias para criar um programa executável, como 
discutido na seção anterior "Ligar". Compilação e vinculação são frequentemente realizados em 
uma única operação, caso em que normalmente é descrito como uma operação de construção. 
Quando o código fonte foi compilado com sucesso, o vinculador irá adicionar o código de 
bibliotecas padrão que seu programa precisa e criar o arquivo executável para o seu programa. 
Finalmente, você pode executar o seu programa. Lembre-se de que você pode fazer isso de 
diversas maneiras. Existe o método usual de clicar duas vezes no arquivo .exe a partir do 
Explorador do Windows se você estiver usando o Windows, mas você será melhor abrir uma 
janela de linha de comando e digitar o comando para executar porque a janela mostrando a 
saída irá desaparecer quando a execução estiver concluída. Você pode executar o seu 
programa a partir da linha de comando em todos os ambientes de sistema operacional. Apenas 
Chapter 1 ■ programming in C 
8 
a iniciar uma sessão de linha de comando, altere o diretório atual para o que contém o arquivo 
executável para o seu programa e depois digite o nome do programa para executá-lo. 
Se tudo funcionou sem produzir quaisquer mensagens de erro que você tiver feito! Este é o seu 
primeiro programa e você deverá ver a seguinte saída: 
 
Olá! 
Chapter 1 ■ programming in C 
9 
A edição de seu primeiro programa 
Você poderia tentar alterar o mesmo programa para exibir outra coisa. Por exemplo, você pode editar o programa para ler 
como este: 
 /* 1.2 seu segundo programa C Programa 
*/ #include<stdio.h> 
 
Int main(void) 
{ 
 Printf("\\\\\"Se à primeira não conseguires, experimente experimente, tente novamente!\""); 
 Retornar 0; 
} 
 
A saída desta versão será: 
 
"Se à primeira não conseguires, experimente experimente, tente novamente!" 
 
As seqüências \" que aparece no início e no final do texto a ser exibido é chamado de uma seqüência de escape, e 
existem várias sequências de escape. Aqui, \" é um modo especial de incluindo uma dupla citação no texto a ser saída. 
Isto é necessário porque aspas duplas (reta tipo, não encaracolado aspas) são utilizados para indicar onde uma string de 
caracteres começa e termina. As sequências de escape causa uma aspas duplas para aparecer no início e no final da saída. 
Se você não utilizar a sequências de escape, não seriam apenas os caracteres de aspas duplas não aparecem na saída, 
mas o programa não compilar. Você vai aprender tudo sobre sequências de escape no "Controle de Caracteres" mais 
adiante neste capítulo. 
Você pode tentar recompilar o programa, reconectando-lo e executá-lo novamente depois de você ter alterado o código 
fonte. Com uma seguinte vento e um pouco de sorte você, agora editado o seu primeiro programa. Que você tenha escrito 
um programa usando o editor, editado, compilados e ligados e executado. 
Lidar com erros 
Errar é humano, de modo que não há necessidade de ser incomodado cometer erros. Felizmente, computadores geralmente 
não cometer erros, e eles são realmente muito boa em indicando onde ficamos escorregou para cima. Mais cedo ou mais 
tarde seu compilador vai apresentar a você uma lista (às vezes uma lista que está mais que você deseja) dos erros que estão 
em seu código fonte. Você geralmente irá obter uma indicação das declarações que estão em erro. Quando isso acontecer, 
você deve voltar para a fase de edição, descubra o que há de errado com o código errado e corrigi-lo. 
Tenha em mente que um erro pode resultar em mensagens de erro para declarações posteriores que pode ser 
efectivamente correcto. Isto geralmente acontece com declarações que se referem a algo que é suposto ser definido por uma 
declaração que contenha um erro. É claro que se uma declaração que define algo tem um erro, então o que era para ser 
definido não ser. 
Vamos percorrer o que acontece quando o seu código fonte está incorreta por criar um erro no seu programa. Editar o 
seu segundo programa exemplo, removendo o ponto-e-vírgula (;) no final da linha com printf(), como mostrado aqui: /* 1.2 
seu segundo programa C Programa */ 
#include<stdio.h> 
 
Int main(void) 
{ 
 Printf("\\\\\"Se à primeira não conseguires, experimente experimente, tente novamente!\"") 
 Retornar 0; 
Chapter 1 ■ programming in C 
10 
} 
 
Se você agora tentar compilar este programa, você verá uma mensagem de erro que irá variar um pouco dependendo 
do compilador que você estiver usando. Uma mensagem de erro típica é a seguinte: 
 
Erro de sintaxe : esperado ';' mas encontrado 'return' 
Olá.C - 1 erro(s), 0 aviso(s) 
 
Aqui, o compilador é capaz de determinar precisamente o que o erro é e onde. Há realmente deve ser um ponto e 
vírgula no final da linha que printf(). Como você começar a escrever seus próprios programas, você provavelmente vai 
obter uma grande quantidade de erros durante a compilação que são causados por erros simples de pontuação. É tão fácil 
esquecer uma vírgula ou um suporte ou apenas pressione a tecla errada. 
Não se preocupe com isso; o lote de programadores experientes a fazer exactamente os mesmos erros - mesmo depois de 
anos de prática. 
Como eu disse anteriormente, apenas um erro às vezes pode resultar em toda uma série de abusos de seu compilador, 
como ele atira-te uma multidão de coisas diferentes que não gosta. Não se colocar fora do número de erros relatados. 
Depois de considerar as mensagens cuidadosamente, a abordagem de base é para voltar e editar o seu código fonte para 
corrigir pelo menos o primeiro erro, pois que podem ter desencadeado outros erros e ignorar os erros que você não pode 
compreender. Então outro vá em compilar o arquivo fonte. Com sorte, você obterá menos erros da próxima vez. 
Para corrigiro seu programa de exemplo, simplesmente voltar ao seu editor e digite novamente o ponto-e-vírgula. 
Recompilar, verificar a existência de quaisquer outros erros e seu programa está apto a ser executado novamente. 
Dissecando um programa simples 
Agora que você já escritos e compilados seu primeiro programa, vamos passar por outra muito semelhante e ver aquilo que 
o indivíduo linhas de código. Ter um olhar para este programa: 
 
Programa /* 1.3 Outro programa simples C - exibindo uma cotação */ 
#include <stdio.h> 
 
Int main(void) 
{ 
 Printf("Cuidado Com o Ides de março!"); 
 Retornar 0; 
} 
 
Este é praticamente idêntica à de seu primeiro programa. Mesmo assim, a prática é bem, a fim de usar o editor para 
inserir este exemplo e veja o que acontece quando você compilar e executar. Se você digitar com precisão, compilar e 
executar, você deve obter a seguinte saída: 
 
Cuidado com o Ides de Março! 
 
Observações 
Olhe para a primeira linha de código no exemplo anterior: 
 
Chapter 1 ■ programming in C 
11 
Programa /* 1.3 Outro programa simples C - exibindo uma cotação */ 
 
Este não é realmente parte do código do programa, na medida em que não está dizendo que o computador faça nada. É 
simplesmente um comentário, e que ele está ali para lembrar você ou alguém ler seu código que faz o programa. Qualquer 
coisa entre /* E */ é tratada como um comentário. Assim como seu compilador encontra /* no seu arquivo de origem, ele 
simplesmente ignorar tudo o que se segue (mesmo se o texto parece código de programa) até que encontra uma 
correspondência */ que marca o fim do comentário. Isso pode estar na mesma linha ou pode ser várias linhas mais. Se você 
se esquecer de incluir a correspondência */, tudo o seguinte /* será ignorado. Aqui está como você poderia usar um único 
comentário para identificar o autor do código e fazer valer o seu direito de autor: 
 
/* 
* Escritos por Ivor Horton 
* Copyright 2012 
*/ 
 
Você também pode embelezar observações a fazer eles destacam: 
 
/******************************************* 
* Esta é uma observação muito importante * 
* Por favor leia este. * 
 *******************************************/ 
 
Você pode adicionar um comentário no fim de uma linha de código usando uma notação diferente, como este: 
Printf("Cuidado Com o Ides de março!"); // Esta linha exibe uma cotação 
Tudo o seguinte duas barras diagonais em uma linha é ignorado pelo compilador. Este formulário de comentário é 
menos confusa do que a notação anterior, especialmente quando o comentário é sobre uma única linha. 
Você deve tentar adquirir o hábito de documentar seus programas usando observações como você vá ao longo. 
Seus programas, evidentemente, irá trabalhar sem comentários, mas quando você escrever programas mais longos, 
você pode não lembrar o que eles fazem ou como eles funcionam. Coloque em observações suficiente para assegurar 
que um mês a partir de agora você (e qualquer outro programador) pode compreender o objectivo do programa e 
como ele funciona. Vamos adicionar mais algumas observações para o programa: 
 
Programa /* 1.3 Outro programa simples C - exibindo uma cotação */ 
#include <stdio.h> // Este é um pré-processador directiva 
 Int main(void) // Esta identifica a função main() { // Esta marca o início do 
main() printf("Cuidado Com o Ides de março!"); // Esta linha saídas uma cotação 
 Retornar 0; // Este retorna o controle para o sistema operacional 
} // Esta marca o fim do main() 
 
Você pode ver que o uso de observações pode ser uma forma muito útil de explicar o que está acontecendo no 
programa. Você pode colocar comentários onde você quiser no seu programa e você pode usá-los para explicar os 
objectivos gerais do código bem como os detalhes de como o código funciona. 
Directivas de pré-processamento 
Vejamos a seguinte linha de código: 
 
#include <stdio.h> // Este é um pré-processador directiva 
 
Esta não é estritamente parte do programa executável, mas é essencial neste caso - na verdade, o programa não 
funcionar sem ele. O símbolo # indica que esta é uma directiva de pré-processamento, que é uma instrução de seu 
compilador para fazer alguma coisa antes de compilar o código fonte. O compilador processa estas directivas durante uma 
Chapter 1 ■ programming in C 
12 
primeira fase de pré-processamento antes de começar o processo de compilação. São muito poucas as directivas de pré-
processamento, e geralmente há alguns no início do arquivo fonte do programa, mas eles podem estar em qualquer lugar. 
Neste caso, o compilador é instruído a "Incluir" no seu programa o conteúdo do arquivo com o nome stdio.h . Este 
arquivo é chamado de arquivo de cabeçalho, porque é geralmente incluído na cabeça de um arquivo fonte do programa. 
Neste caso o arquivo de cabeçalho define informações sobre algumas das funções que são fornecidos pela biblioteca C 
padrão mas, em geral, arquivos de cabeçalho especifica as informações que o compilador usa para integrar qualquer funções 
predefinidas ou outros objetos dentro de um programa global. Você irá criar o seu próprio cabeçalho arquivos para usar com 
os seus programas. Neste caso, porque você está usando a função printf() da biblioteca padrão, você tem que incluir o 
arquivo de cabeçalho stdio.h . Isto é porque stdio.h contém as informações que o compilador precisa de compreender o que 
printf(), bem como outras funções que lidam com entrada e saída. Como tal, o seu nome, stdio, é curto para o standard 
input/output. Todos os arquivos de cabeçalho em C têm nomes de arquivo com a extensão .h. Você vai usar outros arquivos 
padrão da plataforma mais tarde no livro. 
 
■ Nota Os nomes de arquivo de cabeçalho são sensíveis a maiúsculas e minúsculas em 
alguns sistemas, por isso você deve sempre escrever em letras minúsculas no #include directivas. 
 
Cada compilador C que está em conformidade com a norma C11 terá um conjunto de padrão de arquivos de cabeçalho 
fornecido com ela. Estes arquivos de cabeçalho principalmente conter declarações relativas às funções padrão de biblioteca 
e macros que estão disponíveis com C. Embora todos os compiladores C que estejam conformes com a norma irá apoiar o 
mesmo conjunto básico de recursos e terá o mesmo conjunto de arquivos padrão da plataforma obrigatórios disponíveis, 
existem arquivos padrão da plataforma que são opcionais e em alguns casos as funções da biblioteca extra pode ser 
fornecido com um determinado compilador que podem não estar disponíveis com outros compiladores que normalmente 
fornecem funcionalidades específicas para o tipo de computador em que o compilador é executado. 
 
■ Nota Todos os arquivos padrão da plataforma estão listados no apêndice e. 
 
Definir a função main() 
Os próximos cinco afirmações definem a função main(): 
 
Int main(void) // Esta identifica a função main() { // Esta marca o início do main() printf("Cuidado 
Com o Ides de março!"); // Esta linha saídas uma cotação 
 Retornar 0; // Este retorna o controle para o sistema operacional 
} // Esta marca o fim do main() 
 
Uma função é apenas um bloco de código entre chaves que efectua alguns conjunto específico de operações. Cada 
programa C consiste de uma ou mais funções e cada programa C deve conter uma função chamada main() - sendo a razão 
que um programa sempre inicia a execução a partir do início desta função. Imagine que você tenha criado, compilados e 
ligados um arquivo chamado progname.exe. Quando você executar este programa, o sistema operacional executa a função 
main() para o programa. 
A primeira linha da definição para a função main() é a seguinte: 
 
Int main(void) // Esta identifica a função main() 
 
Chapter 1 ■ programming in C 
13 
Isto define o início do main(). Observe que não há nenhum ponto e vírgula no final da linha. A primeira linha identifica 
esta como a função main() tem a palavra int no início. O que aparece aquidefine o tipo de valor que será retornado pela 
função e a palavra int significa que main() retorna um valor inteiro. O valor inteiro que é retornado quando a execução de 
main() termina representa um código que é retornado para o sistema operacional que indica o estado do programa. Você 
final execução de main() e especifique o valor a ser devolvido na presente declaração: 
 
Retornar 0; // Este retorna o controle para o sistema operacional 
 
Esta é uma instrução de retorno que termina a execução de main() e retorna o valor 0 para o sistema operacional. Você 
retornar um valor zero do main() para indicar que o programa foi encerrado normalmente; um valor diferente de zero 
indicaria um retorno anormal, o que significa que as coisas não proceda como eles devem ter quando o programa terminou. 
Os parênteses que siga imediatamente o nome da função principal cercar uma definição de qual a informação a ser 
transferida para main() quando ele começa a execução. Neste exemplo, há a palavra vazio entre os parênteses, e isso 
significa que os dados não podem ser transferidos para o main(). Mais tarde, você verá como os dados são transferidos para 
main() e para outras funções em um programa. 
A função main() pode chamar outras funções, que por sua vez pode chamar outras funções e assim por diante. Para 
cada função que é chamado, você tem a oportunidade de passar algumas informações para ele dentro dos parênteses que 
seguem o seu nome. Uma função interromperá a execução quando uma instrução de retorno no corpo da função é atingido, 
e controlo irá transferir para a função de chamada (ou o sistema operacional no caso da função main()). Em geral, você 
definir uma função de modo que ela não retornar um valor ou não. Quando uma função não retornar um valor, o valor é 
sempre de um tipo específico. No caso de main(), o valor retornado é do tipo int, o que é um número inteiro. 
Palavras-chave 
Em C, uma palavra-chave é uma palavra com significado especial para que você não deve usar palavras-chave para 
qualquer outra finalidade no seu programa. Por esta razão, as palavras-chave são também referidas como palavras 
reservadas. No exemplo anterior, int é uma palavra-chave e invalidar e de retorno também são palavras-chave. C tem várias 
palavras-chave e você vai se familiarizar com mais deles à medida que você aprender mais do idioma. Você encontrará uma 
lista completa de C palavras-chave no Apêndice C. 
O corpo de uma função 
A estrutura geral da função main() está ilustrada na Figura 2. 
Chapter 1 ■ programming in C 
14 
 
Figura 1-2. Estrutura da função main() 
O corpo de função é o bit entre a abertura e o fecho de braçadeiras de que segue a linha onde o nome da função é 
exibida. A função corpo contém todas as declarações que definem o que a função faz. O exemplo da função main() tem uma 
função muito simples corpo constituído por apenas duas declarações: 
 
{ // Esta marca o início do main() printf("Cuidado Com o Ides de março!"); // Esta linha saídas uma cotação 
 Retornar 0; // Este retorna o controle para o sistema operacional 
} // Esta marca o fim do main() 
 
Cada função deve ter um corpo, embora o corpo pode ser vazia e consistir apenas de abertura e fechamento de 
aparelhos ortodônticos sem quaisquer declarações entre eles. Neste caso, a função irá fazer nada. 
Você pode se perguntar o que usar uma função que não faz nada é? Na verdade, isso pode ser muito útil quando você 
está desenvolvendo um programa que terá muitas funções. Você pode declarar o conjunto de funções (vazio) que você acha 
que você precisa escrever para resolver o problema em questão, que deve dar a você uma idéia da programação que precisa 
ser feito, e depois gradualmente criar o código de programa para cada função. Esta técnica ajuda você a criar o seu 
programa de uma forma lógica e incremental. 
 
■ Nota Você pode ver que eu já alinhadas as braçadeiras um abaixo do outro no programa 
1.3 e indentado a declarações entre eles. Eu tenho feito isso para tornar claro onde o bloco de 
declarações que as braçadeiras cercar começa e termina. Demonstrações financeiras entre chaves 
Estrutura da função main( )A 
função principal Headerint(void). . 
 
 
 
 
 
 
 
 
 
 
define o final do corpo de 
função.define o início do corpo de 
 
 
 
 
 
 
Chapter 1 ■ programming in C 
15 
são geralmente recuado por um montante fixo-normalmente de dois ou mais espaços de modo que 
os aparelhos ortodônticos. Isso é bom estilo de programação, porque permite que as declarações 
dentro de um bloco para ser facilmente identificado. 
 
Existem outros estilos para organizar aparelhos ortodônticos no código. Por exemplo: 
 
Int main(void) { 
 Printf("Cuidado Com o Ides de março!"); // Esta linha saídas uma cotação 
 Retornar 0; 
} 
 
■ Dica Com qualquer estilo que você usar para organizar seu código fonte, a coisa mais importante 
é a de aplicar de forma consistente. 
 
Saída de informações 
O corpo da função main() no exemplo inclui uma declaração que chama a função printf(): 
 
Printf("Cuidado Com o Ides de março!"); // Esta linha saídas uma cotação 
 
Como eu disse, printf() é uma função da biblioteca padrão e informações de saídas para a linha de comando 
(efectivamente o fluxo padrão de saída, que é a linha de comando por padrão) com base no que aparece entre os parênteses 
que siga imediatamente o nome da função. Neste caso, a chamada para a função exibe o simples pedaço de aconselhamento 
Shakespeariano que aparece entre as aspas duplas; uma string de caracteres entre aspas duplas como este é chamado de 
uma seqüência literal. Observe que esta linha não terminar com um ponto e vírgula. 
Argumentos da função 
Os itens entre parênteses após um entre o nome da função, como com a função printf() na anterior declaração, são 
chamados de argumentos, e especificar os dados que são passados para a função. Quando houver mais de um argumento 
para uma função, eles devem ser separados por vírgulas. 
No exemplo anterior o argumento para a função é o string de texto entre aspas duplas. Se você não gosta da citação que 
é especificado aqui, você poderia exibir outra coisa simplesmente incluindo a sua própria escolha de palavras dentro de 
aspas duplas dentro do parênteses. Por exemplo, talvez você prefira uma linha de Macbeth: 
 
Printf("Fora, maldito local! Eu dizer!"); 
 
Tente usar este no exemplo. Quando você tiver modificado o código-fonte, você precisa compilar e vincular o 
programa novamente antes da execução. 
 
■ Nota Tal como com todos os executáveis em C (como contrários à definição ou directiva 
declarações) printf() linha deve ter um ponto-e-vírgula no final um erro muito comum quando você 
iniciar a programação em C é para esquecer o ponto-e-vírgula. 
Chapter 1 ■ programming in C 
16 
 
Os caracteres de controle 
Você pode alterar o programa para exibir duas frases em linhas separadas utilizando um único comando printf(). Tente 
digitar o seguinte código: 
 
// Programa 1.4 Outro programa simples C - exibindo uma cotação 
#include <stdio.h> 
 
Int main(void) 
{ 
 Printf("Minha fórmula para o sucesso?\nRise cedo, trabalho tarde, greve óleo.\n"); 
 Retornar 0; 
} 
 
A saída do presente programa esta aparência: 
 
A minha fórmula para o sucesso? 
Aumento precoce, trabalho tarde, greve 
óleo. 
 
Olhe o printf() declaração. Após a primeira frase e no final do texto que você tiver inserido os caracteres \n. A 
combinação \n é outra seqüência de escape que representa um caractere de nova linha. Isso faz com que o cursor de saída 
para mover para a próxima linha de modo que qualquer saída subsequentes será iniciado em uma nova linha. 
A barra invertida (\) é sempre de um significado especial em um string de texto porque ela indica o início de uma 
seqüência de escape. O caractere após o caractere de barra invertida indica que a seqüência de escape representa. No caso 
de \n, n para newline, mas existemmuitas outras possibilidades. Porque uma barra invertida em si é de um significado 
especial, você precisa de uma maneira de especificar uma barra invertida em um string de texto. Para fazer isso, basta usar 
duas barras: \\. Digite o seguinte programa: 
 
// Programa 1.5 Outro programa simples C - Exibição de grande Cotações 
#include <stdio.h> 
 
Int main(void) 
{ 
 Printf("\\\\\"é um pai sábio que conhece o seu próprio filho.\"\nShakespeare\n"); 
 Retornar 0; 
} 
 
A saída mostra o seguinte texto: 
 
"é um pai sábio que conhece o seu próprio filho." 
Shakespeare 
 
Chapter 1 ■ programming in C 
17 
As aspas são a saída porque você usar sequências de escape para eles na cadeia de caracteres. Shakespeare aparece na 
próxima linha porque existe uma \n A seqüência de escape na sequência do \". 
4 
Chapter 1 ■ 
18 
 Programação em C 
Você pode usar o \uma seqüência de escape em uma string de saída para soar de um sinal sonoro para sinalizar algo 
interessante ou importante. Digite e execute o seguinte programa: 
// Programa 1.6 um simples programa C - Importante 
#include <stdio.h> 
Int main(void) 
{ 
 Printf("cuidado!!\n\a"); 
 Retornar 0; } 
A saída deste programa é de som e visão. Ouvir atentamente e você deve ouvir o bip através do altifalante no seu 
computador. 
 
Tenha cuidado!! 
 
O \uma seqüência representa o caractere "Bell". Tabela 1-1 mostra todas as sequências de escape que você pode usar. 
Tabela 1-1. Seqüências de Escape 
A sequência de 
escape 
Descrição 
\n Representa um caractere 
\r Representa um retorno de carro 
\b Representa um retrocesso 
\f Representa um caractere de 
alimentação de formulário 
\t Representa uma guia horizontal 
\v Representa um guia vertical 
\um Insere um bell (alerta) caractere 
\? Insere um ponto de interrogação (?) 
\" Insere uma aspas duplas (") 
\' Insere uma aspas simples (') 
\\ Insere uma barra invertida (\) 
Tente exibir diferentes linhas de texto na tela e alterar o espaçamento dentro desse texto. Você pode colocar palavras 
em linhas diferentes usando \n, e você pode usar \t para o espaço do texto. Você vai obter muito mais prática com estes 
como você progressos através do livro. 
Chapter 1 ■ programming in C 
19 
Sequências Trigraph 
Em geral você pode usar um ponto de interrogação diretamente em uma cadeia de caracteres. O \? A sequência de escape 
que só existe porque existem nove sequências de caracteres especiais chamados trigraph sequências que são três sequências 
de caracteres para representar cada um dos caracteres #, [,], \, ^, ~, \, { e }: 
 
??= converte para # ??( converte a [ ??) converte a ] 
??/ converte para \ ??< converte para { ??> converte a } 
??' converte a ^ ??! Converte a | ??- converte a ~ 
 
Estes estão lá para quando é necessário escrever código C na Organização Internacional de Normalização ISO Código 
invariante definido, que não têm esses caracteres. É pouco provável que isso se aplica a você. Você pode esquecer 
completamente tudo isto a menos que você deseja gravar um comando como: 
 
Printf("Quê??!\n"); 
A saída produzida por esta declaração será: 
 
Qual| 
 
O trigraph ??! Será convertido para |. Para obter a saída pretendida, você precisa escrever a declaração como: 
 
Printf("Quê?\?!\n"); 
Agora a seqüência trigraph não aparecem porque o segundo ponto de interrogação é especificada por sua seqüência de 
escape. Seu compilador pode emitir um aviso quando você usar uma seqüência de trigraph porque normalmente é 
involuntária. 
O pré-processador 
No exemplo eu expliquei como você usa um processamento de directiva para incluir o conteúdo de um arquivo de 
cabeçalho em seu arquivo de origem. A fase de pré-processamento de compilação pode fazer muito mais do que isso. 
Assim como as directivas, seu arquivo de origem podem conter macros. Uma macro é uma instrução para o pré-
processador para adicionar ou modificar o C declarações no programa. Uma macro pode ser algo tão simples como 
definir um símbolo, tais como polegadas_PER_PÉ a ser substituídas por 12 onde aparece o símbolo . A directiva para 
fazer isto é: 
 
#define polegadas_PER_pé 12 
 
Com esta directiva no início de seu arquivo de origem, onde polegadas_PER_PÉ aparece no código, ele será 
substituído por 12. Por exemplo: 
 
Printf("há %d polegadas em um pé.\n", POLEGADAS_PER_PÉ); 
Após o pré-processamento, a presente declaração será: 
 
Printf("há %d polegadas em um pé.\n", 12); 
 
Chapter 1 ■ programming in C 
20 
Polegadas_PER_PÉ não aparece mais porque o símbolo foi substituído pelo conjunto de caracteres especificado no 
#define a directiva. Isto irá acontecer para cada instância do símbolo no arquivo fonte. 
Uma macro pode também ser bastante complicado, com quantidades significativas de código que são adicionados a um 
arquivo de fonte consoante condições especificadas. Não vou entrar em mais este aqui. Vou discutir pré-processador macros 
em pormenor no capítulo 13. Você vai enfrentar alguns macros antes que e eu vou explicar no contexto quando eles 
aparecerem. 
Desenvolvimento de programas em C 
O processo para o desenvolvimento de um programa em C pode não ser óbvio se você nunca tiver escrito um programa 
antes. É muito semelhante à de muitas outras situações na vida onde simplesmente não é clara a forma como você está indo 
para alcançar o seu objectivo quando você começa a. Normalmente você começar com uma ideia aproximada do que você 
deseja alcançar, mas você precisa de o traduzir em uma caracterização mais precisa do que você deseja. Uma vez que você 
tiver chegado a esta caracterização mais precisa, você pode trabalhar fora da série de etapas que levarão ao seu objectivo 
final. Tendo a ideia que deseja construir uma casa não é suficiente. Você precisa saber que tipo de casa que você deseja, 
como grande vai ser, que tipos de materiais você tem que construir com, e onde você deseja construir. Você também vai 
querer saber quanto tempo vai demorar e o custo provável. Este tipo de planejamento detalhado também é necessário 
quando você deseja escrever um programa. Vamos percorrer os passos básicos que você precisa seguir quando você está 
escrevendo um programa. A casa analogia é útil, então eu vou trabalhar com ele por um tempo. 
Entender o problema 
O primeiro passo é ter uma idéia clara do que você deseja fazer. Seria loucura para começar a construir a sua casa antes de 
você tinha estabelecido que instalações deve fornecer: quantos quartos, quantas casas, como grande vai ser e assim por 
diante. Todas estas coisas afetam o custo em termos de materiais e o trabalho envolvido na construção da casa. Geralmente 
ele vem para baixo para um compromisso que melhor atende às suas necessidades dentro das limitações de dinheiro, a força 
de trabalho e o tempo que está disponível para que você conclua o projecto. 
O mesmo se passa com o desenvolvimento de um programa de qualquer tamanho. Mesmo para um problema 
relativamente simples, você precisa saber que tipo de entrada para esperar, como a entrada é para ser processado e que tipo 
de saída é necessária - e como ele vai olhar. A entrada pode ser introduzido com o teclado, mas também pode envolver os 
dados de um arquivo de disco ou informações obtidas através de uma linha telefônica ou uma rede. A saída poderia 
simplesmente ser exibida na tela, ou ele pode ser impresso; talvez ele poderá envolver a escrever um novo arquivo de disco 
de actualização de um arquivo existente. 
Para programas mais complexos, você precisa olhar em muitos mais aspectos do que é o programa vai fazer. Uma 
definição clara do problema que seu programa vai resolver é uma parte essencial da compreensão dos recursos e esforços 
que vão ser necessárias para a criação de um produto acabado. Considerando esses detalhes também obriga você a 
determinar se o projeto é realmente viável. Uma falta de precisão e detalhe nas especificações para um novo programa 
resultou muitas vezes em um projeto muitomais tempo e custos muito mais do que o previsto. Existem muitos exemplos de 
projectos que estão a ser abandonadas por este motivo. 
Projeto detalhado 
Para obter a casa construída, você precisará de planos detalhados. Estes planos permitem a construção de trabalhadores para 
fazerem os seus trabalhos e os planos descrevem em detalhes como a casa vai juntos as dimensões, os materiais a utilizar e 
assim por diante. Você também precisa de um plano que tem de ser feito e quando. Por exemplo, você irá querer que a 
Fundação cavado antes das paredes são construídos, então o plano deve envolver segmentando o trabalho em unidades 
gerenciáveis para ser executado em uma seqüência lógica. 
O mesmo acontece com um programa. Você precisa especificar o que o programa não dividindo-a em um conjunto 
bem definido e pedaços gerenciáveis que são razoavelmente auto-contido. Você também precisa de pormenor a forma como 
estes pedaços ligar, bem como quais informações cada bloco será necessário quando ele executa. Isto irá permitir que você 
desenvolva a lógica de cada bloco relativamente independente do resto do programa. Se você tratar um grande programa 
Chapter 1 ■ programming in C 
21 
como um grande processo que você tentar o código como um único bloco, são grandes as chances de que você nunca 
receberá a trabalhar. 
Implementação 
Dado o projeto detalhado de uma casa, o trabalho pode começar. Cada grupo de trabalhadores da construção civil será 
necessário para completar a sua parte do projeto no momento certo. Cada fase precisarão ser inspecionados para verificar 
que foi feito correctamente antes da próxima etapa começa. Omitindo estas verificações poderia facilmente resultar em toda 
a casa desabar. 
É claro que se um programa é grande e você escrever tudo sozinho, você vai escrever o código-fonte em uma 
unidade de cada vez. Como uma parte estiver concluída, você pode escrever o código para a próxima. Cada parte será 
baseada em as especificações detalhadas do projeto e vais verificar que cada peça funciona tanto quanto você pode, antes 
de continuar. Desta forma, irás gradualmente progredir para o pleno funcionamento do programa que faz tudo o que 
estava inicialmente previsto. 
Um grande projeto de programação geralmente envolve uma equipa de programadores. O projeto é dividido em 
relativamente auto-contido unidades que podem ser alocados entre os membros da equipe. Isto permite que várias unidades 
de código a ser desenvolvidos em simultâneo. A interface entre uma unidade de código e o resto do programa deve ser 
definido com precisão se as unidades estão indo para conectar juntos como um todo. 
Testes 
A casa está concluída, mas há uma série de coisas que precisam de ser testadas: a drenagem, o fornecimento de água e 
electricidade, aquecimento e assim por diante. Qualquer uma dessas áreas pode ter problemas em que as empresas 
contratadas precisam para voltar e corrigir. Isto às vezes é um processo iterativo, no qual os problemas com um aspecto da 
casa pode ser a causa das coisas a fazer de errado em outro lugar. 
O mecanismo com um programa é semelhante. Cada um dos módulos de seu programa- as peças que compõem o seu 
programa-precisarão ser testados individualmente. Quando eles não funcionam adequadamente, você precisa para 
depurar-los. A depuração é o processo de localização e correção de erros no seu programa. Este termo é dito ter se 
originado nos dias quando encontrar erros em um programa de rastreamento envolvidos onde a informação foi e como ele 
foi processado dentro do computador usando o diagrama do circuito para a máquina. A história passa-se em uma instância 
que foi descoberto que um programa de computador erro foi causado por um inseto um bastão de parte de um circuito no 
computador. O problema foi causado por um bug. Posteriormente, o termo bug foi usado para se referir a qualquer 
mensagem de erro em um programa. 
Com um simples programa, geralmente você pode encontrar um erro simplesmente inspecionando o código. Em geral, 
porém, o processo de depuração geralmente envolve o uso de um depurador que insere código temporariamente para 
trabalhar o que aconteceu quando as coisas correm mal. Isso inclui pontos de interrupção em que a execução de pausas para 
permitir que você inspecione valores no seu código. Você também pode percorrer um programa uma declaração de cada 
vez. Se você não tiver um depurador, adicionar código de programa extra para produzir uma saída que permitirá que você 
verifique qual a seqüência de eventos é e aquilo que os valores intermédios são produzidos quando um programa é 
executado. Com um grande programa, você também precisa testar os módulos do programa em combinação, porque apesar 
de módulos individuais podem trabalhar, não há nenhuma garantia de que eles vão trabalhar juntos! O jargão para esta fase 
do desenvolvimento do programa é a integração de testes. 
Funções e Programação Modular 
A palavra função tem aparecido algumas vezes até agora neste capítulo com referência à main(), printf(), corpo de função e 
assim por diante. Vamos explorar o que funções são um pouco mais em profundidade e por que eles são importantes. 
A maioria das linguagens de programação, incluindo C, fornecem uma maneira de dividir um programa em 
segmentos, cada um dos quais podem ser escritos mais ou menos de forma independente dos outros. Em C esses 
segmentos são chamados de funções. O código de programa no corpo de uma função é isolada do que de outras funções. 
Uma função terá uma interface específica para o mundo exterior em termos da forma como a informação é transferida para 
a ti e como os resultados gerados pela função são transmitidos de volta. Esta interface é especificado na primeira linha da 
função, onde o nome da função é exibida. 
Chapter 1 ■ programming in C 
22 
A figura 3 mostra um exemplo simples de um programa para analisar os escores de beisebol que é composto de quatro 
funções. 
 
Figura 3. Programação Modular 
Cada uma das quatro funções não específicas, trabalho bem definidos. O controlo global da seqüência de operações no 
programa é gerido por um módulo, main(). Existe uma função para ler e verificar os dados de entrada e outra função para 
fazer a análise. Uma vez que os dados foram lidos e analisados, uma quarta função tem a tarefa de saída da equipe e 
classificações de jogadores. 
Segmentando um programa em blocos gerenciáveis é um aspecto muito importante a programação, de forma vamos 
falar sobre as razões para o fazer: 
• Ele permite que cada função a ser escrito e testado separadamente. Isso simplifica consideravelmente o 
processo de obter o total do programa de trabalho. 
• Várias funções separadas são mais fáceis de manusear e compreender a função de um enorme. 
• As bibliotecas são apenas conjuntos de funções que as pessoas tendem a utilizar todo o tempo. Porque 
eles já escrita e testados, você sabe que eles funcionam de modo que você pode usá-las sem se 
preocupar com os seus detalhes de código. Isto irá acelerar o seu programa de desenvolvimento 
permitindo que você se concentre no seu próprio código, e é uma parte fundamental da filosofia de C. a 
riqueza das bibliotecas muito amplifica a força do idioma. 
• Você pode acumular suas próprias bibliotecas de funções que são aplicáveis ao tipo de programas que 
você está interessado. Se você encontrar a si mesmo por escrito uma determinada função com 
freqüência, você pode escrever uma versão generalizada de ti para atender às suas necessidades e 
construir esta em sua própria biblioteca. Em seguida, sempre que você precisar usar aquela função em 
particular, você pode simplesmente usar sua versão da biblioteca. 
• No desenvolvimento de grandes programas, o que pode variar de alguns milhares de milhões de linhas 
de código de desenvolvimento pode ser realizadas por equipas de programadores, com cada equipe 
trabalhando com um subgrupo definido das funções que compõem o conjunto do programa. 
ProgramControlT 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Chapter 1 ■ programming in C 
23 
Você aprenderá sobre as funções de C em maior detalhe no capítulo 8. Porque a estrutura de um programa C é 
inerentemente funcional, você já foi apresentado a uma das funções padrão de biblioteca em um dos primeiros exemplos do 
presente capítulo: a função printf(). 
 
■ Nota Em algumas outras linguagens de programação, o termo método é usado para se 
referir a uma unidade independente de código. Assim método significa essencialmente a 
mesma função. 
 
Experimente: UM EXEMPLO DE PROGRAMA DE C 
Você pode tentar um exemplo que põe em prática o que você aprendeu até agora. Em 
primeiro lugar, dê uma olhada no código a seguir e veja se você consegue entender o que ele 
faz sem executá-lo. Depois digite e compilar, link e executá-lo e ver o que acontece. 
 
// Programa 1.7 um programa mais 
#include <stdio.h> // Incluir o arquivo de cabeçalho para entrada e saída 
 
Int main(void) 
{ 
 Printf("Olá!\n\n\neste programa é um bit"); 
 Printf(" mais do que os outros."); 
 Printf("\nmas realmente é apenas mais texto.\n\n\n\a\a"); printf("Hey, aguarde um 
minuto!! Que foi isso???\n\n"); 
 Printf("\t1.\tA pássaro?\n"); printf("\t2.\tA 
avião?\n"); printf("\t3.\tA caractere de controle?\n"); 
 Printf("\n\t\t\b\Banda como será esse olhar quando se imprime?\n\n"); 
 Retornar 0; 
} 
 
A saída será como segue: 
 
Olá! 
Este programa é um pouco maior que os outros. 
Mas realmente é apenas mais texto. 
Hey, aguarde um minuto!! Que foi isso??? 
1. Um pássaro? 
2. Um plano? 
3. Um caractere de controle? 
E como será esse olhar quando imprime? 
 
Chapter 1 ■ programming in C 
24 
Como ele funciona 
O programa parece um pouco complicado, mas isso é apenas porque as strings de texto entre 
parênteses incluem um lote de sequências de escape. Cada string de texto é delimitada por um 
par de aspas duplas. O programa é apenas uma sucessão de chamadas para a função printf(), 
e demonstra que a saída para a tela é controlado pelo que você passe para a função printf(). 
Você incluir a stdio.h arquivo da biblioteca padrão através de uma directiva de pré-processamento: 
 
#include <stdio.h> // Incluir o arquivo de cabeçalho para entrada e saída 
 
Você pode ver que esta é uma directiva de pré-processamento porque ele começa com #. o arquivo 
stdio.h fornece as definições que você precisa para ser capaz de utilizar a função printf(). 
Você então definir o início da função main() e especifique que retorna um valor inteiro com esta linha: 
 
Int main(void) 
 
A palavra-chave vazio entre parênteses indica que nenhuma informação é passada para a função 
main(). O esteio de abertura na próxima linha indica que o corpo da função da seguinte forma: 
 
{ 
 
A próxima declaração chama a função de biblioteca padrão printf() para a saída de Hi lá! para o 
seu ecrã, seguido de duas linhas em branco e a frase este programa é um pouco. Printf("Olá!\n\n\neste 
programa é um bit"); 
As duas linhas em branco são produzidos pelas três \n sequências de escape. Cada um destes inicia 
uma nova linha quando os caracteres são escritos para o visor. O primeiro termina a linha 
contendo Olá!, e os próximos dois produzir as duas linhas vazias. O texto deste programa é um 
pouco aparece na quarta linha de saída. Você pode ver que esta linha de código produz um total de 
quatro linhas de saída na tela. 
A linha de saída produzida pela próxima printf() começa na posição de caractere imediatamente após 
o último caractere na saída anterior. Este saídas maior que os outros com um espaço como o primeiro 
caractere de saída: 
 
Printf(" mais do que os outros."); 
 
Esta saída irá simplesmente continuar onde a última linha esquerda desligada, seguinte o t no bit. 
Isto significa que você realmente precisa de espaço no início do texto, caso contrário o computador 
exibirá este programa é um bitlonger do que os outros, que não é o que você deseja. 
A próxima declaração começa a sua produção em uma nova linha imediatamente a seguir a linha 
anterior devido a \n no início do string de texto entre aspas duplas: 
Printf("\nmas realmente é apenas mais texto.\n\n\n\a\a"); 
Chapter 1 ■ programming in C 
25 
Ele exibe o texto e adiciona duas linhas vazias (devido a três \n sequências de escape) e emite um 
sinal sonoro. A próxima saída irá arrancar no início da linha que segue a segunda linha vazia. a 
próxima saída é produzido pela seguinte declaração: printf("Hey, aguarde um minuto!! Que foi 
isso???\n\n"); esta saídas o texto e deixa uma linha vazia. a próxima saída será na linha seguinte a linha 
vazia. 
Cada um dos próximos três declarações insere uma guia exibe um número, inserções outra guia 
seguido de um texto e termina com uma nova linha. Isso é útil para fazer a saída mais fácil de ler. 
 
Printf("\t1.\tA pássaro?\n"); printf("\t2.\tA 
avião?\n"); 
Printf("\t3.\tA caractere de controle?\n"); 
 
Este produz três linhas numeradas de saída. 
A próxima declaração saídas inicialmente um caractere, a fim de que haverá uma linha vazia 
após a saída do anterior. duas guias são então enviados para a linha de comando seguido por 
dois inclusive backspaces, que move você de volta dois espaços a partir da última posição da 
guia. Por último, o texto de saída é seguido por dois newline caracteres: 
 
Printf("\n\t\t\b\Banda como será esse olhar quando se imprime?\n\n"); 
 
A última declaração no corpo da função é: 
 
Retornar 0; 
 
Este termina a execução de main() e retorna o valor 0 para o sistema operacional. 
O esteio de fechamento que marca o fim do corpo de função: 
 
} 
 
■ Nota O efeito preciso de guias e inclusive backspaces na saída pode variar entre compiladores. 
 
Erros comuns 
Os erros são um facto da vida. Quando você escrever um programa de computador em C, o compilador deve converter seu 
código fonte para código de máquina. Para isso, o seu código deve ter um significado preciso portanto existem regras muito 
rigorosas que regem o modo como você usa o idioma. Deixar de fora uma vírgula onde um é esperado ou adicionar um 
ponto-e-vírgula onde você não deve e o compilador não será capaz de traduzir o seu programa em código de máquina. 
Você ficará surpreso como é fácil introduzir erros tipográficos em seu programa, mesmo após anos de prática. Se 
você tiver sorte, estes erros serão apanhados quando você compilar ou link o seu programa. Se você estiver realmente 
azarado, eles podem resultar em seu programa aparentemente funcionando bem mas a produzir alguns intermitente 
comportamento irregular. 
Você pode acabar gastando muito de rastreamento de tempo esses erros. 
Chapter 1 ■ programming in C 
26 
É claro que não só os erros tipográficos que causam problemas. Você vai encontrar muitas vezes que a sua aplicação 
pormenorizada não é apenas para a direita. Quando você está lidando com complicadas decisões no seu programa, é fácil 
obter a lógica errada. O programa pode ser muito precisa a partir de um ponto de vista linguístico e pode compilar e 
executar sem problema, mas ele não produzir as respostas certas. Esses tipos de erros podem ser mais difíceis de encontrar. 
Pontos a Lembrar 
Seria uma boa ideia para rever o que você já adquirida a partir de seu primeiro programa. Você pode fazer isso olhando a 
visão geral dos pontos importantes na Figura 4. 
Isto indica o 
fim de um 
comentário 
 Da função main(). Esta declaração termina a execução do 
Main() e retorna o controle para o 
sistema operacional. 
Figura 4. Os elementos de um programa simples 
Resumo 
Tudo o seguinte // na linha 
é um comentário e 
portanto é um 
comentário e por 
/* Estrutura de um programa simples 
*/// para entrada & saída #include 
 
 
 
 printf ("Esta é a saída para a linha de comando.\n"); 
 ... 
 retornar 0; // Final execução 
principal} 
o incluem 
a 
 directiva 
inclui o conteúdo de um 
arquivoexterno em 
seu arquivo de 
origem.Isto 
 
 
int indica que main() 
retorna um valor 
inteiro.ignorado pelo 
 
 
stdio.h é um arquivo padrão da 
plataforma necessária para utilizar as 
funções de 
entrada/saída tais 
 
printf() . 
Este esteio 
indica o início do corpo 
da função main().Este 
esteio indica o final do 
 
 
 
 
 
Tudo seguintes // na linha 
Chapter 1 ■ programming in C 
27 
conseguinte ignorado pelo compilador. 
Você chegou ao final do primeiro capítulo e você já escritos alguns programas em C. já abrangidos muita terra, mas a um 
ritmo bastante suave. O objetivo deste capítulo foi apresentar algumas ideias básicas em vez de ensinar muito sobre a 
linguagem de programação C. Agora você deve estar confiante sobre a edição, compilar e executar os seus programas. 
Você provavelmente tem apenas uma vaga idéia sobre como construir um programa C neste ponto. Ela se tornará muito 
mais clara quando você aprendeu um pouco mais sobre C e ter escrito alguns programas com mais carne para eles. 
No próximo capítulo você vai passar para coisas mais complicadas do que produzir saída de texto usando a função 
printf(). Você vai manipular a informação e obter alguns resultados bastante mais interessante. E pela forma como a função 
printf() não muito mais do que apenas exibir strings de texto como você verá em breve. 
Exercícios 
Os exercícios a seguir permitem que você experimente o que você aprendeu neste capítulo. Se 
você ficar preso, olhar para trás sobre o capítulo para obter ajuda. Se ainda estiver preso, você 
pode baixar o código fonte de soluções a partir da seção de download de/aprima web site 
(http://www.apress.com), mas que realmente deveria ser um último recurso. 
Exercício 1-1. Escrever um programa que será o seu nome e endereço de saída 
usando uma declaração separada printf() para cada linha de saída. 
Exercício 2. Modificar a sua solução para o exercício anterior de modo que 
produz todas as saída usando apenas um comando printf(). 
Exercício 3. Escrever um programa para a saída do seguinte texto exatamente como 
ele aparece aqui: 
"É o congelamento em aqui", disse com frieza. 
 
http://www.apress.com/
 
25 
Agora você provavelmente está ansioso para criar programas que permitem que o computador para realmente interagir com o 
mundo exterior. Você não quer apenas programas que funcionam como máquinas de escrever glorificado, exibindo informações 
fixas que você incluído no código do programa e de facto há um mundo inteiro de programação que vai além. O ideal é que você 
deseja ser capaz de inserir dados a partir do teclado e ter o programa esquilo longe em algum lugar. Isso tornaria o programa 
muito mais versáteis. O programa seria capaz de acessar e manipular esses dados e seria capaz de trabalhar com diferentes 
valores de dados cada vez que você executá-lo. Esta ideia de introduzir informações diferentes a cada vez que você executar um 
programa é o que facilita a programação de útil. Um lugar para armazenar um item de dados que podem variar de um programa 
não é completamente surpreendentemente chamado uma variável, e é isso o que este capítulo abrange. 
Neste capítulo você aprenderá: 
• Como a memória é usada e o que são as variáveis 
• Como você calcular em C 
• Quais os diferentes tipos de variáveis existem e o que você usa para 
• O que a tina é e quando você precisar usá-lo 
• Como escrever um programa que calcula a altura de uma árvore de qualquer árvore 
A memória em seu computador 
Eu vou explicar primeiro como o computador armazena os dados que são processados no seu programa. Para entender isso você 
precisa saber um pouco sobre a memória em seu computador, isso antes de iniciar o primeiro programa, vamos fazer um tour 
rápido de memória do seu computador. 
As instruções que compõem o programa e os dados que ele atua sobre, têm de ser armazenados em algum lugar que 
instantaneamente acessível enquanto o seu computador está executando esse programa. Quando o programa está a ser executado, 
as instruções do programa e os dados são armazenados na memória principal ou a memória de acesso aleatório (RAM) da 
máquina. A RAM é volátil de armazenamento. Quando você desligar o seu PC, o conteúdo da RAM é perdido. O seu PC tem o 
armazenamento permanente sob a forma de uma ou mais unidades de disco. Tudo o que você deseja para manter quando 
um programa termina a execução precisa ser impressos ou gravados em disco, porque quando o programa termina, os resultados 
armazenados na RAM serão perdidos. 
Você pode pensar de RAM como uma sequência ordenada de caixas. Cada uma destas caixas é um de dois estados: ou a 
caixa está cheio quando representa 1 ou a caixa está vazia quando não representa 0. Por conseguinte, cada caixa representa um 
dígito binário, 0 ou 1. Às vezes o computador pensa destas em termos de verdadeiro e falso: 1 é verdadeira e 0 é falsa. Cada uma 
dessas caixas é chamado de bit, que é uma contração de dígito binário. 
 Primeiros passos na programação 
 
■ Nota Se você não consegue se lembrar ou nunca aprenderam sobre os números binários e 
você deseja saber um pouco mais há mais detalhes no apêndice a. No entanto, você não precisa de se 
Capítulo 2 
Primeiros passos na 
programação
Chapter 2 ■ 
26 
preocupar umbout estes detalhes se eles não apelo para você. O ponto importante aqui é que o 
computador só pode lidar com 1s e 0s-ele não pode lidar com números decimais diretamente. Todos os 
dados que o programa funciona com, incluindo as próprias instruções do programa, será composto de 
números binários dentro do seu PC. 
 
Para sua conveniência, os bits na memória são agrupados em conjuntos de oito, e cada conjunto de oito bits é chamado 
um byte. Para permitir que você veja o conteúdo de um determinado byte, cada byte foi rotulado com um número, a partir de 0 
para o primeiro byte, 1 para o segundo byte e assim por diante, até qualquer que seja o número de bytes que você tem na 
memória do seu computador. Esta etiqueta para um byte é chamado de seu endereço. Assim, o endereço de cada byte é 
exclusivo. Apenas como um endereço de rua identifica uma determinada casa, o endereço de um byte exclusivamente referências 
que byte na memória do seu computador. 
Para resumir, memória consiste de um grande número de bits que estão em grupos de oito (chamados de bytes) e cada byte 
tem um endereço exclusivo. Endereços de byte início a partir de 0. Um bit pode ser apenas 1 ou 0. Isso é ilustrado na Figura 2-1. 
 
Figura 2-1. bytes na memória 
A quantidade de memória de que seu computador tem é expressa em termos de tantos kilobytes, megabytes ou gigabytes, e 
no caso de grandes unidades de disco, terabytes. Aqui está o que essas palavras significam: 
• 1 quilobyte (ou 1KB) é 1.024 bytes. 
• 1 megabyte (ou 1MB) é 1.024 kilobytes, que é 1.048.576 bytes. 
• 1 gigabyte (ou 1GB) é 1.024 megabytes, que é 1.073.741.824 bytes. 
• 1 terabyte (ou 1TB) é 1.024 gigabytes, que é 1,099,511,627,776 bytes. 
Se você tiver um gigabyte de RAM em seu PC, byte endereços serão de 0 a 1.073.741.823 inclusive. Você pode estar se 
perguntando por que não trabalhar com mais simples, mais números arredondados, tais como um mil ou um milhão ou um 
bilhão. 
Este é um 
byte12864321
 
 
 
 
 
7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 
Outro 
byteStorage 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Chapter 2 ■ First steps in programming 
27 
A razão é a seguinte: existem 1.024 números de 0 a 1.023 e 1.023 acontece de ser de 10 bits que são todos os 1 em binário: 11 
1111 1111, que é um valor binário muito conveniente. Enquanto 1.000 é um valor decimal muito conveniente, realmente é muito 
inconveniente em um binário de máquina é 11 1110 1000, que não é exactamente limpa e arrumada. O quilobyte (1.024 bytes) 
é assim definido de uma forma que seja conveniente para o seu computador, em vez de

Outros materiais