Вы находитесь на странице: 1из 10

Introdução - C

C é uma linguagem de programação de propósito geral, estruturada, imperativa, procedural, de baixo


nível e padronizada, criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no
sistema operacional UNIX. Desde então, espalhou-se por muitos outros sistemas operativos, e tornou-
se uma das linguagens de programação mais usadas.
C tem como ponto forte, a sua eficiência, e é a linguagem de programação preferida para o
desenvolvimento de sistemas e softwares de base, apesar de também ser usada para desenvolver
programas de computador. É também muito usada no ensino de ciências da computação, mesmo não
tendo sido projetada para estudantes e apresentando algumas dificuldades no seu uso. Outra
característica importante de C, é sua proximidade do código de máquina, que permite que um
projetista seja capaz de fazer algumas previsões de como o software irá se comportar, ao ser
executado.
C tem como ponto fraco, a falta de proteção que dá ao programador. Praticamente tudo que se
expressa em um programa em C, pode ser executado, como por exemplo, pedir o vigésimo membro de
um vetor com apenas dez membros. Os resultados são muitas vezes totalmente inesperados, e os
erros, difíceis de encontrar.Muitas linguagens de programação foram influenciadas por C, sendo que a
mais utilizada atualmente é C++, que por sua vez foi uma das inspirações para Java.
História
Desenvolvimentos Iniciais
O desenvolvimento inicial de C, ocorreu nos
laboratórios Bell da AT&T, entre 1969 e 1973.
Segundo Ritchie, o período mais criativo ocorreu em
1972. Deu-se o nome "C" à linguagem porque muitas
das suas características derivaram de uma linguagem
de programação anterior chamada "B". Há vários
relatos que se referem à origem do nome "B": Ken
Thompson dá crédito à linguagem de programação
BCPL mas ele também criou uma outra linguagem de
programação chamada 'Bon', em honra da sua mulher
Bonnie. Por volta de 1973, a linguagem C tinha se
tornado suficientemente poderosa para que grande
parte do núcleo de UNIX, originalmente escrito na
linguagem de programação PDP-11/20 assembly, fosse
reescrito em C. Este foi um dos primeiros núcleos de
sistema operativo que foi implementado numa linguagem sem ser o assembly, sendo exemplos
anteriores o sistema Multics (escrito em PL/I) e TRIPOS (escrito em BCPL).
C ANSI e C ISO
Durante os finais da década de 1970, a linguagem C começou a substituir a linguagem BASIC como a
linguagem de programação de microcomputadores mais usada. Durante a década de 1980, foi
adoptada para uso no PC IBM, e a sua popularidade começou a aumentar significativamente. Ao
mesmo tempo, Bjarne Stroustrup, juntamente com outros nos laboratórios Bell, começou a trabalhar
num projecto onde se adicionavam construções de linguagens de programação orientada por objectos
à linguagem C. A linguagem que eles produziram, chamada C++, é nos dias de hoje a linguagem de
programação de aplicações mais comum no sistema operativo Windows da companhia Microsoft; C
permanece mais popular no mundo UNIX. Em 1983, o instituto norte-americano de padrões (ANSI)
formou um comité, X3j11, para estabelecer uma especificação do padrão da linguagem C. Após um
processo longo e árduo, o padrão foi completo em 1989 e ratificado como ANSI X3.159-1989
"Programming Language C". Esta versão da linguagem é freqüentemente referida como C ANSI. Em
1990, o padrão C ANSI, após sofrer umas modificações menores, foi adotado pela Organização
Internacional de Padrões (ISO) como ISO/IEC 9899:1990. Um dos objetivos do processo de
padronização C ANSI foi o de produzir um sobreconjunto do C K&R, incorporando muitas das
características não-oficiais subseqüentemente introduzidas. Entretanto, muitos programas tinham sido
escritos e que não compilavam em certas plataformas, ou com um certo compilador, devido ao uso de
bibliotecas de funções não-padrão e ao fato de alguns compiladores não aderirem ao C ANSI.
C99
Após o processo ANSI de padronização, as especificações da linguagem C permaneceram
relativamente estáticas por algum tempo, enquanto que a linguagem C++ continuou a evoluir. (em
1995, a Normative Amendment 1 criou uma versão nova da linguagem C mas esta versão raramente é
tida em conta.) Contudo, o padrão foi submetido a uma revisão nos finais da década de 1990, levando
à publicação da norma ISO 9899:1999 em 1999. Este padrão é geralmente referido como "C99". O
padrão foi adoptado como um padrão ANSI em Março de 2000. As novas características do C99
incluem:

 funções em linha
 remoção de restrições sobre a localização da declaração de variáveis (como em C++)
 adição de vários tipos de dados novos, incluindo o long long int (para minimizar problemas na
transição de 32-bits para 64-bits), um tipo de dados boolean explicito (chamado _Bool) e um
tipo complex que representa números complexos
 vetores de dados de comprimento variável (o vetor pode ter um tamanho diferente a cada
execução de uma função, mas não cresce depois de criado)
 suporte oficial para comentários de uma linha iniciados por //, emprestados da linguagem C++
 várias funções de biblioteca novas, tais como snprintf()
 vários ficheiros-cabeçalho novos, tais como stdint.h

O interesse em suportar as características novas de C99 parece depender muito das entidades. Apesar
do GCC e vários outros compiladores suportarem grande parte das novas características do C99, os
compiladores mantidos pela Microsoft e pela Borland suportam pouquíssimos recursos do C99, e estas
duas companhias não parecem estar muito interessadas em adicionar tais funcionalidades, ignorando
por completo as normas internacionais. A Microsoft parece preferir dar mais ênfase ao C++.
Visão Geral
C é uma linguagem imperativa e procedural, para implementação de sistemas. Seus pontos de design
foram para ele ser compilado, fornecendo acesso de baixo nível à memória e baixos requerimentos do
hardware. Também foi desenvolvido para ser uma linguagem de alto nível, para maior
reaproveitamento do código. C foi útil para muitas aplicações que forma codificadas originalmente em
Assembly.
Essa propriedade não foi acidental; a linguagem C foi criada com o objectivo principal em mente:
facilitar a criação de programas extensos com menos erros, recorrendo ao paradigma da programação
algorítmica ou procedimental, mas sobrecarregando menos o autor do compilador, cujo trabalho
complica-se ao ter de realizar as características complexas da linguagem. Para este fim, a linguagem C
possui as seguintes características:

 Uma linguagem nuclear extremamente simples, com funcionalidades não-essenciais, tais como
funções matemáticas ou manuseamento de ficheiros (arquivos), fornecida por um conjunto de
bibliotecas de rotinas padronizada;
 A focalização no paradigma de programação procedimental;
 Um sistema de tipos simples que evita várias operações que não fazem sentido
 Uso de uma linguagem de pré-processamento, o pré-processador de C, para tarefas tais como a
definição de macros e a inclusão de múltiplos ficheiros de código fonte;
 Um acesso de baixo-nível à memória do computador, através do uso de ponteiros;
 Parâmetros que são sempre passados por valor para as funções e nunca por referência (É
possível simular a passagem por referência com o uso de ponteiros);
 Definição do alcance lexical de variáveis;
 Estruturas de variáveis, (structs), que permitem que dados relacionados sejam combinados e
manipulados como um todo.

Algumas características úteis, que faltam em C, podem ser encontradas em outras linguagens, que
incluem:

 Segurança de tipo;
 Coletor de lixo (mais encontrado em linguagens interpretadas);
 Vetores que crescem automaticamete;
 Classes ou objectos com comportamento (ver orientação a objetos);
 Um sistema avançado de sistema de tipos;
 Closures;
 Funções aninhadas;
 Programação genérica;
 Sobrecarga de operadores;
 Meta-programação;
 Apoio nativo de multithreading e comunicação por rede.
Apesar da lista de características úteis que C não possui ser longa, isso não tem sido um impedimento
à sua aceitação, pois isso permite que novos compiladores de C sejam escritos rapidamente para
novas plataformas, e também permite que o programador permaneça sempre em controle do que o
programa está a fazer. Isto é o que por várias vezes permite o código de C correr de uma forma mais
eficiente que muitas outras linguagens. Tipicamente, só código de assembly "afinado à mão" é que
corre mais rapidamente, pois possui um controle completo da máquina, mas avanços na área de
compiladores juntamente com uma nova complexidade nos processadores modernos permitiram que a
diferença tenha sido rapidamente eliminada. Uma consequência da aceitação geral da linguagem C é
que frequentemente os compiladores, bibliotecas e até intérpretes de outras linguagens de nível maior
sejam eles próprios implementados em C.

Introdução - C++
História
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs
durante a década de 1980 com o objectivo de melhorar a linguagem de
programação C ainda que mantendo máxima compatibilidade.
Stroustrup percebeu que a linguagem Simula possuía características
bastante úteis para o desenvolvimento de software, mas era muito lenta
para uso prático. Por outro lado, a linguagem BCPL era rápida, mas
possuía demasiado baixo nível, dificultando sua utilização em
desenvolvimento de aplicações. Durante seu período na Bell Labs, ele
enfrentou o problema de analisar o kernel UNIX com respeito à
computação distribuída. A partir de sua experiência de doutorado,
começou a acrescentar elementos do Simula no C. O C foi escolhido
como base de desenvolvimento da nova linguagem pois possuía uma proposta de uso genérico, era
rápido e também portável para diversas plataformas. Algumas outras linguagens que também serviram
de inspiração para o cientista da computação foram ALGOL 68, Ada, CLU e ML.
Ainda em 1983 o nome da linguagem foi alterado de C with Classes para C++. Novas características
foram adicionadas, como funções virtuais, sobrecarga de operadores e funções, referências,
constantes, gerenciamento manual de memória, melhorias na verificação de tipo de dado e estilo de
comentário de código de uma linha (//). Em 1985 foi lançada a primeira edição do livro The C++
Programming Language, contendo referências para a utilização da linguagem, já que ainda não era
uma norma oficial. A primeira versão comercial foi lançada em outubro do mesmo ano. Em 1989 a
segunda versão foi lançada, contendo novas características como herança múltipla, classes abstratas,
métodos estáticos, métodos constantes e membros protegidos, incrementando o suporte a orientação
a objeto. Em 1990 foi lançado o livro The Annotated C++ Reference Manual, que tornou-se base para
o futuro padrão. Outras adições na linguagem incluem templates, tratamento de exceções, espaço de
nomes, conversão segura de tipo de dado e o tipo booleano.
Assim como a linguagem, sua biblioteca padrão também sofreu melhorias ao longo do tempo. Sua
primeira adição foi a biblioteca de E/S, e posteriormente a Standard Template Library (STL); ambas
tornaram-se algumas das principais funcionalidades que distanciaram a linguagem em relação a C.
Criada primordialmente na HP por Alexander Stepanov no início da década de 1990 para explorar os
potenciais da programação genérica, a STL foi apresentada a um comitê unificado ANSI e ISO em 1993
à convite de Andrew Koenig. Após uma proposta formal na reunião do ano seguinte, a biblioteca
recebe o aval do comitê.
Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em 1998 (ISO/IEC
14882:1998). Após alguns anos foram reportados defeitos e imprecisões no documento, e uma
correção foi lançada em 2003.
Por muito tempo, o C++ foi encarado como um superconjunto do C (uma discussão sobre o tema
encontra-se abaixo na seção de incompatibilidades). Entretanto, em 1999 o novo padrão ISO para a
linguagem C tornou as duas linguagens ainda mais diferentes entre si. Devido a essas
incompatibilidades, muitas empresas que desenvolvem compiladores não oferecem suporte à versão
mais recente da linguagem C.
Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve sucesso como uma
sucessora à linguagem C, inclusive servindo de inspiração para outras linguagens como Java, a IDL de
CORBA e C#.
O nome C++
Durante sua fase inicial de desenvolvimento, a linguagem era chamada "novo C" ou ainda "C com
classes". O termo "C++" é creditado a Rick Mascitti[6], e foi utilizado pela primeira vez em dezembro
de 1983. Ele é uma referência ao operador de incremento ++, significando um acréscimo (uma
evolução) à linguagem C. Em tom humorado, desenvolvedores software e especialistas em informática
no início da década de 1990 costumavam relacionar o ++ do nome à grande insistência dos
programadores em utilizar o C++ da mesma forma que a linguagem C, não usufruindo das novas
facilidades que a linguagem poderia fornecer. Assim como o ++ estava sendo aplicado de maneira
pós-fixa à letra C, a linguagem C++ era uma evolução do C pós-fixada, que só tornar-se-ia realidade
em algum futuro remoto, não naquele momento.
Vantagens e Desvantagens
Vantagens

 Produção de código o quanto mais eficiente possível.


 Possibilidade em programação de alto e baixo nível.
 Alta flexibilidade, portabilidade e consistência.
 Adequado para grandes projetos.
 Ampla disponibilidade e suporte, devido principalmente à grande base de desenvolvedores.
 Não está sob o domínio de uma empresa (em contraste do Java — Sun ou Visual Basic —
Microsoft).
 Padronização pela ISO.
 Grandes possibilidades para a metaprogramação e programação genérica.
 Compatilidade com C, resultando em vasta base de códigos.

Desvantagens

 Compatilidade com o C herdou os problemas de entendimento de sintaxe do mesmo.


 Os compiladores atuais nem sempre produzem o código mais otimizado, tanto em velocidade
quando tamanho do código.
 Grande período para o aprendizado.
 A biblioteca padrão não cobre áreas importantes da programação, como threads, conexões
TCP/IP, interface gráfica e manipulação de sistemas de arquivos, o que implica na necessidade
de criação de bibliotecas próprias para tal, que pecam em portabilidade.
 Devido à grande flexibilidade no desenvolvimento, é recomendado o uso de padrões de
programação mais amplamente que em outras linguagens.

Pessoas Notáveis
O desenvolvimento da linguagem C++ é fruto do trabalho de milhares de pessoas associadas à
academia e à indústria de software, e pode consistir na utilização da linguagem, em seu ensino, na
construção de bibliotecas de rotinas ou na participação no comitê de padronização, entre outras
atividades. Algumas pessoas tiveram participação fundamental durante a história para o
desenvolvimento[26]. Primeiramente, o próprio Bjarne Stroustrup, criador da linguagem e de seu
primeiro compilador. O cientista ainda participa na padronização e divulga o C++ no meio acadêmico.
Andrew Koenig é outro pesquisador notável, bastante atuante na padronização e creditado pela técnica
Koenig lookup, demonstrada acima. Já Scott Meyers é um doutor em ciência da computação, e escritor
de diversos livros sobre o desenvolvimento de software utilizando a linguagem. Assim como Meyers,
Herb Sutter é escritor de diversos livros sobre C++ e centenas de colunas e artigos, e um notável
pesquisador sobre programação concorrente e multitarefa. Andrei Alexandrescu é considerado um dos
maiores especialistas em programação C++ avançada. Na área de programação genérica destaca-se o
programador russo Alexander Stepanov, a figura chave na criação da Standard Template Library.

O que é preciso para programar em C ou C++


Além de aprender o código, isso é óbvio, você precisará de um outro programa que possa entender
esse código e traduzí-lo em um formato que o computador entenda, ou seja, código de máquina.
Esses programas que fazem isso são chamados de compiladores (para mais detalhes acesse o link
compiladores na seção algoritmo).
Existem vários compiladores, nos quais sua função é gerar o código de máquina que fica guardado em
um arquivo executável (EXE).
Para quem for iniciante, existem compiladores mais didáticos como o DEV-C, que é uma ótima
plataforma e ainda por cima é gratuito.
Para quem já tem um pouco mais de intimidade com esta linguagem e também com o ambiente de
compiladores, o Turbo-C talvez seja o mais indicado.
Se não souber qual compilador usar, veja nossa lista de compiladores de C.

Primeiro Programa em C
Este é um programa muito famoso por ser o citado na primeira edição do primeiro livro de Ken
Thompson e Dennis Ritchie, The C Programming Language.
01.//O primeiro programa em C
02./*Adaptado do programa original do livro The C Programming Language
03.de autoria de Ken Thompson e Dennis Ritchie*/
04.
05.#include <stdio.h>
06.
07.int main (void){
08.printf ("Ola! Mundo.");
09.return (0);
10.}
A finalidade deste programa é apenas mostrar na tela uma mensagem dizendo Ola! Mundo. e terminar
o programa.
A primeira vista parece um programa fútil, mas K&R pretendiam com isso mostrar ao mundo uma
linguagem inovadora, que era mais produtiva e funcional, capaz de substituir as linguagens da época
como por exemplo o Assembly e o B (criado pelo próprio Ken Thompson).
Já com esse programa são apresentadas as noções mais básicas sobre a gramática e sintaxe principal
da linguagem que vamos analisar na próxima página.

Analisando o Primeiro Programa em C


Com o primeiro programa em C, podemos verificar as questões mais básicas da linguagem e também
elementos encontrados em qualquer linguagem (lógico que cada uma à sua maneira).
Comentário
1.//O primeiro programa em C
2./*
3.Adaptado do programa original do livro
4.The C Programming Language
5.de autoria de Dennis Ritchie e Ken Thompson
6.*/
Comentários são linhas não compiladas, ou seja, não são comandos que devem ser executados pelo
programa.
Então, se não são linhas executadas, qual a finalidade de adicionar um comentário?
A função dos comentários é deixar o código mais legível e para fazer anotações importantes dentro do
próprio código, como por exemplo, anotar porque você usou uma lógica ao invés de outra, porque você
nomeou aquela variável de tal forma, etc.
Nessas 5 primeiras linhas do código temos dois tipos de comentários, um de C++ e outro de C.
Os comentários de uma linha foram introduzidos em C++ e são definidos pelas barras barras duplas
(//). Tudo que estiver nessa linha será ignorado pelo compilador.
Já os comentários de várias linhas tem em ambos, tanto C como C++. Você procede abrindo o
comentário com /* e demonstrando onde termina o comentário com */. Tudo de estiver depois de /* e
antes de */ será ignorado pelo compilador. Por isso nunca se esqueça de que quando abrir (/*),
obrigatóriamente, você terá que fechar (*/). Isso é um erro muito comum de se cometer,
principalmente para quem está começando.
Pré-processamento
1.#include <stdio.h>
Uma característica marcante de C é o pré-processamento.
A linguagem C tem a capacidade de importar bibliotecas de funções que são, leigamente, comandos já
prontos para usar.
Cada um desses comandos, que chamamos de FUNÇÕES, estão organizados em bibliotecas diferentes.
Bastando a nós determinar em qual biblioteca o compilador irá encontrar tal função.
O pré-processamento é determinado pelo caracter #.
Para importar uma biblioteca, basta usar o comando include.
Quanto inclusão de biblioteca, há diferenças entre C e C++ tanto na forma de inclusão quanto nas
bibliotecas, que não são as mesmas. Esse é um detalhe que abordaremos melhor na próxima página.
Função Principal - O programa de fato
1.int main (void)
Todo o programa em C está estrito dentro da função MAIN.
MAIN é a primeira função a ser executada por qualquer programa em C, mesmo que tenha outras
funções escritas antes dela.
Há compiladores que interpretam esta função mesmo incompleta, ou seja, você também como
começar esta função escrevendo:
main ()
int main ()
main (void)
Mas para manter a portabilidade e evitar erros desnecessários de compilação, o melhor a fazer é
declarar ela inteira -> int main (void).
Devemos salientar também que deve ser tudo em letras minúsculas, pois a linguagem C é case
sensite, trocando por miúdos, ele distingüi entre letras maiúsculas e minúsculas. Por exemplo:
MAIN não é a mesma coisa que Main, que não é a mesma coisa que MaiN, que por sua vez, não é a
mesma coisa que MaIn, que também é diferente de main.
Então, de preferência, sempre use letras minúsculas.
Bloco de Dados
{}

Os blocos de dados são utilizados para determinar todas as linhas de código que comandos ou funções
devem executar de uma vez.
O bloco de dados é determinado pelo abrir e fechar de chaves ({}).
Você abre chaves onde se deve começar a executar e fecha onde deve terminar a execução. Em um
programa pode haver mais de uma chave e o mesmo número de chaves aberta deve ser o de chaves
fechadas.
No caso do primeiro programa, apenas abre a execução da função principal (main) e fecha-se no final
de sua execução.
Funções e Processos
1.printf ("Olá! Mundo.");
2.return (0);
Qualquer programa é determinado pelo que está dentro das chaves.
O que está dentro das chaves pode ser uma função, uma palavra reservada (como IF, ELSE, FOR, ...)
ou processo (operação matemática).
Em C, toda chamada de função, processo ou algumas palavras reservadas devem terminar a linha com
um ponto e vírgula (;).
Como você pode ver na chamada da função printf e da palavra reservada return.
Toda a parte de função, processo e palavras reservadas serão tratadas de forma mais abrangente
posteriormente.
Até aqui é o básico de qualquer programação baseada em C. A princípio parece muita coisa, mas,
relativamente, não é. Pois com o tempo, você irá se acostumar a declarar a função INT MAIN (VOID),
pois todo programa precisa dela, e de tanto o compilador indicar uma linha errada, você nunca mais
vai esquecer de que o único erro daquela linha foi a falta do ponto e vírgula no final. E se você não é
bom em matemática, não se preocupe! Pois muitos bons programadores nunca fizeram uma faculdade
de ciências exatas com ênfase em matemática.

Include e as Bibliotecas
Como já vimos, a linguagem C tem a capacidade de importar bibliotecas.
A importância da biblioteca em C é imensa, pois ela nos poupa de muita programação. Uma vez que a
função já está pronta dentro da biblioteca, basta importar tal biblioteca e utilizar a função que
queremos.
Por exemplo, se você quiser mostrar uma mensagem na tela, você não tem que produzir uma função
inteira ou criar um comando novo, basta importar uma biblioteca de I/O (entrada e saída) e utilizar
uma função dela. Quando for compilar, o compilador vai buscar nas bibliotecas tais funções para saber
como utilizá-las.
O papel do pré-processamento é indicar, antes mesmo de compilar, os parâmetros necessários para
ser criado o arquivo executável.
O pré-processamento é indicado pelo caracter sharp (#) no inicio da linha e deve ser usado no início
da programação.
Importando uma biblioteca
A importação de uma biblioteca é dada pelo comando INCLUDE (incluir) seguido da biblioteca entre os
sinais de menor (<) e maior (>).
Porém, devemos notar que existem diferenças entre a importação de bibliotecas de C e de C++.
Importando uma biblioteca em C
Em C, a importação de bibliotecas são mais simples, bastando acrescentar para cada biblioteca um
include em uma linha diferente e o nome da biblioteca seguido de ponto H (.h) - .h é a extensão do
arquivo da biblioteca que vem da palavra inglesa HEADER (cabeçalho) - se você esquecer de colocá-lo
o programa não será compilado.
No exemplo abaixo, vamos incluir duas bibliotecas padrões de C.
1.#include <stdio.h>
2.#include <stdlib.h>
Como podem ver, cada biblioteca foi incluída em uma linha.
Importando uma biblioteca em C++
Em C++, a importação de bibliotecas é um pouco diferente. O comando de importação continua sendo
o include, mas nesse caso, não usaremos o ponto H (.h) no final das bibliotecas legitimamente* de
C++.
*Muitos compiladores aceitam formas híbridas de inclusão de bibliotecas, podendo misturar bibliotecas
de C e de C++. Veremos um exemplo mais a frente.
Após importarmos uma biblioteca por linha, no final dessa lista devemos demonstrar que tipo de
funções usaremos. Na grande maioria dos casos usaremos as funções padrões de cada bibloteca.
Podemos fazer isso facilmente digitando a palavra reservada USING* indicando o espaço de nome
(namespace) standard (std), que quer dizer padrão em inglês.
Não se esqueça que a palavra reservada USING necessita terminar a linha com ponto e vírgula(;).
Abaixo importaremos uma biblioteca padrão de entrada e saída de C++.
1.#include <iostream>
2.using namespace std;
No exemplo abaixo uma importação híbrida de bibliotecas de C e C++.
1.#include <stdlib.h>
2.//biblioteca de C
3.#include <iostream>
4.//biblioteca de C++
5.using namespace std;
As bibliotecas de C são diferentes das bibliotecas de C++. Apesar de muitos compiladores de C++
suportarem as bibliotecas de C, nenhum compilador exclusivamente de C suporta bibliotecas de C++.
Variáveis
Variáveis são endereços de mémoria na qual podemos atribuir ou mudar o valor.
A declaração da variável deve proceder da seguinte maneira:
1º especificar o tipo de variável
2º nomear a variável
* Não podemos esquecer que o C / C++ é case sensitive, ou seja, ele diferencia as letras maiúsculas
das minúsculas.
Por exemplo, x não é a mesma coisa de X.
Um outro cuidado que devemos ter é não começar uma variável por número, mas podemos terminá-la.
Exemplo: É errado declarar 2x, mas podemos declarar x2 ou _2x.
Como uma última precaução, não podemos usar espaços, pois o compilador pode entender como
sendo outra váriavel não separada por vírgula e acusará um erro. No lugar do espaço, pode-se usar
underline (_).
Exemplo: É errado digitar resultado da raiz, mas é correto, resultado_da_raiz.
Tipos de variáveis
A linguagem C aceita os tipos mais comuns de variáveis e com possibilidade de modificar o alcance.
Para saber a diferença entre os tipos de dados consulte a seção algoritmo no link Tipo de dados
comuns.
O primeiro tipo é o inteiro. Declara-se como int nomedavariável.
O tipo inteiro em C/C++ é uma variável de 16 bits (2 btyes) e tem o alcance entre -32768 a +32767.
O segundo é o inteiro longo. Declara-se como long int nomedavariável.
Ele é uma melhoria do inteiro comum, pois dobra o número de bits aumentado considerávelmente seu
alcance, que aqui fica entre -2147483648 a +2147483647.
O outro tipo é o real ou decimal, que também chamamos de ponto flutuante.
Declara-se como float nomedavariável.
O tipo flutuante é uma variável que tem uma precisão de 7 digitos, consome 4 bytes de memória
assim como o inteiro longo e tem um alcance de 1E-36 a 1E+36
Mais um tipo é uma melhoria do ponto flutuante, o dobro. Declaramos double nomedavariável.
O double consome incríveis 8 bytes de memória para o seu armazenamento. Esse consumo é explicado
pela alta precisão de seu número (cerca de 14 dígitos após a vírgula) e tem um alcance imenso que vai
de 1E-303 a 1E+303.
Se você não conhece número científico, isso seria como se depois do número 1 tivessem mais uma
seqüência de 303 números zeros, nem sei se existe uma palavra que descreva tamanho número.
O último tipo, e talvez o mais complexo, é o caracter. O caracter serve tanto para descrever um
símbolo como também pode retornar um inteiro, pois ele baseia-se na tabela ASCII. Ou seja, se
declararmos uma variável de caracter podemos fazer tanto mostrar na saída a letra A como também
65, seu número da tabela ASCII.
Declaramos como char nomedavariável. Apesar de letras consumirem 1 byte teoricamente, os
caracteres em C/C++ são baseados, como já foi dito, na tabela ASCII, onde cada letra tem 2 bytes.
Isso foi necessário para que conseguissemos usar letras de linguagens latinas que contém acentos.
Seu total é 256 divididos em dois: 127 positivos, onde praticamente estão todas as letras necessárias;
e 128 negativos onde encontramos muitos símbolos matemáticos e letras acentuadas. Trataremos
melhor a questão de caracteres, tabela ASCII e corrente de caracteres (string) em páginas adiante.

Atribuindo-se valores às variáveis


A parte mais importante de qualquer programa é o processo.
O processamento, em geral, é dado de forma genérica, ou seja, por variáveis.
Cada variável tem um alcance e forma diferente de trabalhar o dado nela gravado. Por exemplo, se
determinarmos uma variável inteira, você jamais poderá digitar um número decimal, pois todos os
números depois do sinal decimal serão ignorados. Se formos escrever um número decimal, devemos
usar o ponto (.) ao invés da vírgula (,), se for determinado uma variável de caracter pode ser tanto um
inteiro como uma letra e assim por diante.
A atribuição de valores às variáveis se dá de duas forma: ou na inicialização ou durante um processo.
A atribuição é indicada pelo sinal de igual (=) sempre da direita para esqueda. O que eu quero dizer é
que a variável à esquerda do igual recebe o valor ou resultado de uma conta à direita do igual.
Exemplo: Se digito a=b, quero dizer que a receberá o valor contido em b. Ou a=b+c, quero dizer
que a receberá o valor do resultado de b+c.
01./* EXEMPLO1
02.Aqui está um exemplo de variáveis recebendo valores durante um processo*/
03.
04.#include <stdio.h>
05.
06.int main (void){
07.int a;
08.float b;
09.a=15+5; // atribuindo o valor de 15+5 a variavel a (resultara em 20)
10.b=1.5-0.5; // atribuindo o valor de 1,5-0,5 a variavel b (resultara em 1,0000000)
11./* Lembre-se: Em C, o ponto e o separador decimal, nao a virgula!*/
12.printf ("a=%d\n", a);
13.printf ("b=%f\n", b);
14.return 0;
15.}
Caso uma variável deva começar com um valor já estipulado, basta você, no momento que declarar a
variável, já atribuir o valor.
01./* EXEMPLO2
02.Iniciando variaveis com valores*/
03.
04.#include <stdio.h>
05.
06.int main (void){
07.char letra=65;//a variavel letra ja comeca valendo 65
08.printf ("%c", letra);
09.return 0;
10.}
Processos
Os processos são contas matemática (cálculos) que podem ser feitos com números, variáveis ou
ambos.
Abaixo está uma tabela com os operadores mais comuns
+ adição
- subtração
* multiplicação
/ divisão
% módulo (divisão no qual é obtido o resto)
++ incremento de 1
-- decremento de 1
C segue a convenção de expressões matemáticas. Por exemplo:
Se você fizer 1+2*3, o resultado será 7 e não 9, pois a multiplicação deve ser calculada primeiro. Para
esta conta dar 9 devemos indicar que a soma deve ser feita antes da multiplicação. Ela ficaria assim,
(1+2)*3. O que está entre parênteses deve ser calculado primeiro.
Como podemos ver além das operações matemáticas básicas, temos funções estritamente de
programação como a divisão que resulta o resto, o incremento e o decremento. Para conhecer melhor
a funcionalidade desses operadores, visite a seção algoritmo.
01.//EXEMPLO3
02.
03.#include <stdio.h>
04.
05.int main (void){
06.int soma, subtracao, multiplicacao, divisao, decremento, incremento, resto;
07.soma=50+50;
08.subtracao=200-200;
09.multiplicacao=5*5;
10.divisao=10/5;
11.decremento=10;
12.decremento--;
13.incremento=10;
14.incremento++;
15.resto=10%3;
16.printf ("soma = %d\n", soma);
17.printf ("subtracao = %d\n", subtracao);
18.printf ("multiplicacao = %d\n", multiplicacao);
19.printf ("divisao = %d\n", divisao);
20.printf ("decremento = %d\n", decremento);
21.printf ("incremento = %d\n", incremento);
22.printf ("resto = %d\n", resto);
23.return 0;
24.}