Você está na página 1de 7

CURSO DE C

Nomes de Variveis As variveis no C podem ter qualquer nome se duas condies forem satisfeitas: o nome deve comear com uma letra ou sublinhado (_) e os caracteres subsequentes devem ser letras, nmeros ou sublinhado (_). H apenas mais duas restries: o nome de uma varivel no pode ser igual a uma palavra reservada, nem igual ao nome de uma funo declarada pelo programador, ou pelas bibliotecas do C. Variveis de at 32 caracteres so aceitas. Mais uma coisa: bom sempre lembrar que o C "case sensitive" e portanto deve-se prestar ateno s maisculas e minsculas. CURSO DE C

Os Tipos do C O C tem 5 tipos bsicos: char, int, float, void, double. Destes no vimos ainda o ltimo: O double o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais preciso. Para cada um dos tipos de variveis existem os modificadores de tipo. Os modificadores de tipo do C so quatro: signed, unsigned, long e short. Ao float no se pode aplicar nenhum e ao double pode-se aplicar apenas o long. Os quatro podem ser aplicados a inteiros. A inteno que short e long devam prover tamanhos diferentes de inteiros onde isto for prtico. int normalmente ter o tamanho natural para uma determinada mquina. Assim, numa mquina de 16 bits, int provavelmente ter 16 bits. Numa mquina de 32, int dever ter 32 bits. Na verdade, cada compilador livre para escolher tamanhos adequados para o seu prprio hardware, com a nica restrio de que shorts e ints devem ocupar pelo menos 16 bits, longs pelo menos 32 bits, e short no pode ser maior que int, que no pode ser maior que long. A seguir esto listados os tipos de dados permitidos e seu valores mximos e mnimos em um compilador tpico para um hardware de 16 bits:

Tipo char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int signed long int unsigned long int float double long double

Num de bits 8 8 8 16 16 16 16 16 16 32 32 32 32 64 80

Intervalo Inicio -128 0 -128 -32.768 0 -32.768 -32.768 0 -32.768 -2.147.483.648 -2.147.483.648 0 3,4E-38 1,7E-308 3,4E-4932 Fim 127 255 127 32.767 65.535 32.767 32.767 65.535 32.767 2.147.483.647 2.147.483.647 4.294.967.295 3.4E+38 1,7E+308 3,4E+4932

O tipo long double o tipo de ponto flutuante com maior preciso. importante observar que os intervalos de ponto flutuante, na tabela acima, esto indicados em faixa de expoente, mas os nmeros podem assumir valores tanto positivos quanto negativos. CURSO DE C

Declarao e Inicializao de Variveis As variveis no C devem ser declaradas antes de serem usadas. A forma geral da declarao de variveis : tipo_da_varivel lista_de_variveis; As variveis da lista de variveis tero todas o mesmo tipo e devero ser separadas por vrgula. Como o tipo default do C o int, quando vamos declarar variveis int com algum dos modificadores de tipo, basta colocar o nome do modificador de tipo. Assim um long basta para declarar um long int. Por exemplo, as declaraes char ch, letra; long count; float pi; declaram duas variveis do tipo char (ch e letra), uma variavel long int (count) e um float pi. H trs lugares nos quais podemos declarar variveis. O primeiro fora de todas as funes do programa. Estas variveis so chamadas variveis globais e podem ser usadas a partir de qualquer lugar no programa. Pode-se dizer que, como elas esto fora de todas as funes, todas as funes as vem. O segundo lugar no qual se pode declarar variveis no incio de um bloco de cdigo. Estas variveis so chamadas locais e s tm validade dentro do bloco no qual so declaradas, isto , s a funo qual ela pertence sabe da existncia desta varivel, dentro do bloco no qual foram declaradas. O terceiro lugar onde se pode declarar variveis na lista de parmetros de uma funo. Mais uma vez, apesar de estas variveis receberem valores externos, estas variveis so conhecidas apenas pela funo onde so declaradas. Veja o programa abaixo: #include <stdio.h> int contador; int func1(int j) { ... } int main() { char condicao; int i; for (i=0; ...) { /* Bloco do for */ float f2; ... func1(i); } ... return(0); }

A varivel contador e uma varivel global, e acessvel de qualquer parte do programa. As variveis condio e i, s existem dentro de main(), isto so variveis locais de main. A varivel float f2 um exemplo de uma varivel de bloco, isto , ela somente conhecida dentro do bloco do for, pertencente funo main. A varivel inteira j um exemplo de declarao na lista de parmetros de uma funo (a funo func1). As regras que regem onde uma varivel vlida chamam-se regras de escopo da varivel. H mais dois detalhes que devem ser ressaltados. Duas variveis globais no podem ter o mesmo nome. O mesmo vale para duas variveis locais de uma mesma funo. J duas variveis locais, de funes diferentes, podem ter o mesmo nome sem perigo algum de conflito. Podemos inicializar variveis no momento de sua declarao. Para fazer isto podemos usar a forma geral tipo_da_varivel nome_da_varivel = constante; Isto importante pois quando o C cria uma varivel ele no a inicializa. Isto significa que at que um primeiro valor seja atribudo nova varivel ela tem um valor indefinido e que no pode ser utilizado para nada. Nunca presuma que uma varivel declarada vale zero ou qualquer outro valor. Exemplos de inicializao so dados abaixo:

char ch='D'; int count=0; float pi=3.141;

AUTO AVALIAO Veja como voc est: Escreva um programa que declare uma varivel inteira global e atribua o valor 10 a ela. Declare outras 5 variveis inteiras locais ao programa principal e atribua os valores 20, 30, ..., 60 a elas. Declare 6 variveis caracteres e atribua a elas as letras c, o, e, l, h, o . Finalmente, o programa dever imprimir, usando todas as variaveis declaradas: As variaveis inteiras contem os numeros: 10,20,30,40,50,60 O animal contido nas variaveis caracteres e o coelho CURSO DE C

Constantes

y y y y

Constantes dos tipos bsicos Constantes hexadecimais e octais Constantes strings Constantes de barra invertida

Constantes so valores que so mantidos fixos pelo compilador. J usamos constantes neste curso. So consideradas constantes, por exemplo, os nmeros e caracteres como 45.65 ou 'n', etc...

Constantes dos tipos bsicos Abaixo vemos as constantes relativas aos tipos bsicos do C:

Tipo de Dado char int long int short int unsigned int float double

Exemplos de Constantes 'b' '\n' '\0' 2 32000 -130 100000 -467 100 -30 50000 35678 0.0 23.7 -12.3e-10 12546354334.0 -0.0000034236556

Constantes hexadecimais e octais Muitas vezes precisamos inserir constantes hexadecimais (base dezesseis) ou octais (base oito) no nosso programa. O C permite que se faa isto. As constantes hexadecimais comeam com 0x. As constantes octais comeam em 0. Alguns exemplos:

Constante 0xEF 0x12A4 03212 034215432

Tipo Char Hexadecimal (8 bits) Int Hexadecimal (16 bits) Char Octal (8 bits) Int Octal (16 bits)

Nunca escreva portanto 013 achando que o C vai compilar isto como se fosse 13. Na linguagem C 013 diferente de 13!

Constantes strings

J mostramos como o C trata strings. Vamos agora alertar para o fato de que uma string "Joao" na realidade uma constante string. Isto implica, por exemplo, no fato de que 't' diferente de "t", pois 't' um char enquanto que "t" uma constante string com dois chars onde o primeiro 't' e o segundo '\0'.

Constantes de barra invertida O C utiliza, para nos facilitar a tarefa de programar, vrios cdigos chamados cdigos de barra invertida. Estes so caracteres que podem ser usados como qualquer outro. A lista completa dos cdigos de barra invertida dada a seguir:

Cdigo \b \f \n \r \t \" \' \0 \\ \v \a \N \xN

Significado Retrocesso ("back") Alimentao de formulrio ("form feed") Nova linha ("new line") Retorno de carro ("carriage return") Tabulao horizontal ("tab") Aspas Apstrofo Nulo (0 em decimal) Barra invertida Tabulao vertical Sinal sonoro ("beep") Constante octal (N o valor da constante) Constante hexadecimal (N o valor da constante)

CURSO DE C

Operadores Aritmticos e de Atribuio Os operadores aritmticos so usados para desenvolver operaes matemticas. A seguir apresentamos a lista dos operadores aritmticos do C:

Operador + * / % ++ --

Ao Soma (inteira e ponto flutuante) Subtrao ou Troca de sinal (inteira e ponto flutuante) Multiplicao (inteira e ponto flutuante) Diviso (inteira e ponto flutuante) Resto de diviso (de inteiros) Incremento (inteiro e ponto flutuante) Decremento (inteiro e ponto flutuante)

O C possui operadores unrios e binrios. Os unrios agem sobre uma varivel apenas, modificando ou no o seu valor, e retornam o valor final da varivel. Os binrios usam duas variveis e retornam um terceiro valor, sem alterar as variveis originais. A soma um operador binrio pois pega duas variveis, soma seus valores, sem alterar as variveis, e retorna esta soma. Outros operadores binrios so os operadores - (subtrao), *, / e %. O operador - como troca de sinal um operador unrio que no altera a varivel sobre a qual aplicado, pois ele retorna o valor da varivel multiplicado por -1. O operador / (diviso) quando aplicado a variveis inteiras, nos fornece o resultado da diviso inteira; quando aplicado a variveis em ponto flutuante nos fornece o resultado da diviso "real". Assim seja o seguinte trecho de cdigo:

int a = 17, b = 3; int x, y; float z = 17. , z1, z2; x = a / b; y = a % b; z1 = z / b; z2 = a/b; ao final da execuo destas linhas, os valores calculados seriam x = 5, y = 2, z1 = 5.666666 e z2 = 5.0 . Note que na linha correspondente a z2, primeiramente feita uma diviso inteira (pois os dois operandos so inteiros). Somente aps efetuada a diviso que o resultado atribudo a uma varivel float. Os operadores de incremento e decremento so unrios que alteram a varivel sobre a qual esto aplicados. O que eles fazem incrementar ou decrementar, a varivel sobre a qual esto aplicados, de 1. Ento

x++; x--; so equivalentes a x=x+1; x=x-1; Estes operadores podem ser pr-fixados ou ps- fixados. A diferena que quando so pr-fixados eles incrementam e retornam o valor da varivel j incrementada. Quando so ps-fixados eles retornam o valor da varivel sem o incremento e depois incrementam a varivel. Ento, em

x=23; y=x++; teremos, no final, y=23 e x=24. Em x=23; y=++x; teremos, no final, y=24 e x=24. Uma curiosidade: a linguagem de programao C++ tem este nome pois ela seria um "incremento" da linguagem C padro. A linguagem C++ igual a linguagem C s que com extenses que permitem a programao orientada a objeto, o que um recurso extra. O operador de atribuio do C o =. O que ele faz pegar o valor direita e atribuir varivel da esquerda. Alm disto ele retorna o valor que ele atribuiu. Isto faz com que as seguintes expresses sejam vlidas:

x=y=z=1.5; if (k=w) ...

/* Expressao 1 */ /* Expressao 2 */

A expresso 1 vlida, pois quando fazemos z=1.5 ela retorna 1.5, que passado adiante. A expresso dois ser verdadeira se w for diferente de zero, pois este ser o valor retornado por k=w. Pense bem antes de usar a expresso dois, pois ela pode

gerar erros de interpretao. Voc no est comparando k e w. Voc est atribuindo o valor de w a k e usando este valor para tomar a deciso.

AUTO AVALIAO Veja como voc est: Diga o resultado das variveis x, y e z depois da seguinte sequncia de operaes: int x,y,z; x=y=10; z=++x; x=-x; y++; x=x+y-(z--);

Você também pode gostar