Introdução a Linguagem C (Parte II)

Identificadores

São nomes usados para se fazer referência a variáveis, funções, rótulos e vários outros objetos definidos pelo usuário. O primeiro caracter deve ser uma letra ou um sublinhado. Os 32 primeiros caracteres de um identificador são significativos. É case sensitive, ou seja, as letras maiúsculas diferem das minúsculas.

int x; /*é diferente de int X;*/

Tipos

Quando você declara um identificador dá a ele um tipo. Os tipos principais podem ser colocados dentro da classe do tipo de objeto de dado. Um tipo de objeto de dados determina como valores de dados são representados, que valores pode
expressar, e que tipo de operações você pode executar com estes valores.

cusodeC.pdf - Adobe Reader

Tipos Inteiros

2

Uma implementação do compilador pode mostrar um faixa maior do que a mostrada na tabela, mas não uma faixa menor. As potencias de 2 usadas significam:
215 32.768
216 65536
231 2.147.483.648
232 4.294.967.298

Tipos Flutuantes

3

Ex:
main()
{
char c;
unsigned char uc;
int i;
unsigned int ui;
float f;
double d;
printf(“char %d”,sizeof(c));
printf(“unsigned char %d”,sizeof(uc));
printf(“int %d”,sizeof(i));
printf(“unsigned int %d”,sizeof(ui));
printf(“float %d”,sizeof(f));
printf(“double %d”,sizeof(d));
}

Operadores

Operador de atribuição

O operador de atribuição em C é o sinal de igual “=”. Ao contrário de outras linguagens, o operador de atribuição pode ser utilizado em expressões que também envolvem outros operadores.

Aritméticos

Os operadores *, /, + e – funcionam como na maioria das linguagens, o operador % indica o resto de uma divisão inteira.

i+=2;   ->   i=i+2;
x*=y+1;   ->   x=x*(y+1);
d-=3;   ->   d=d-3;

Ex:
main()

{i
nt x,y; x=10; y=3;
printf(“%d\n”,x/y);
printf(“%d\n”,x%y);
}

Operadores de relação e lógicos

Relação refere-se as relações que os valores podem ter um com o outro e lógico se refere às maneiras como essas relações podem ser conectadas. Verdadeiroé qualquer valor que não seja 0, enquanto que 0 é falso. As expressões que usam operadores de relação e lógicos retornarão 0 para falso e 1 para verdadeiro. Tanto os operadores de relação como os lógicos tem a precedência menor que os operadores aritméticos. As operações de avaliação produzem um resultado 0 ou 1.

relacionais                        lógicos

> maior que                      && and
>= maior ou igual              || ou
< menor                            ! not
<= menor ou igual
== igual
!= não igual

Ex:
main()

{
int i,j;
printf(“digite dois números: “);
scanf(“%d%d”,&i,&j);
printf(“%d == %d é %d\n”,i,j,i==j);
printf(“%d != %d é %d\n”,i,j,i!=j);
printf(“%d <= %d é %d\n”,i,j,i<=j);
printf(“%d >= %d é %d\n”,i,j,i>=j);
printf(“%d < %d é %d\n”,i,j,i< j);
printf(“%d > %d é %d\n”,i,j,i> j);
}

Ex:
main()

{

int x=2,y=3,produto;

if ((produto=x*y)>0) printf(“é maior”);
}

Incremento e decremento

O C fornece operadores diferentes para incrementar variáveis. O operador soma 1 ao seu operando, e o decremento subtrai 1. O aspecto não usual desta notação é que podem ser usado como operadores pré-fixo(++x) ou pós-fixo(x++).

++x incrementa x antes de utilizar o seu valor.
x++ incrementa x depois de ser utilizado.

Ex:
main()

{
int x=0;
printf(“x= %d\n”,x++);
printf(“x= %d\n”,x);
printf(“x= %d\n”,++x);
printf(“x= %d\n”,x);
}

Precedência

O nível de precedência dos operadores é avaliado da esquerda para a direita.
Os parênteses podem ser utilizados para alterar a ordem da avaliação.

++ — mais alta
* / %
+ – mais baixa

Operador cast

Sintaxe:
(tipo)expressão

Podemos forçar uma expressão a ser de um determinado tipo usando o operador cast.

Ex:
main()

{
int i=1;
printf(“%d/3 é: %f”,i,(float) i/3);
}

Operador sizeof

O operador sizeof retorna o tamanho em bytes da variável, ou seja, do tipo que está em seu operando. É utilizado para assegurar a portabilidade do programa.

INTRODUÇÃO A LINGUAGEM C

Introdução

A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas
da Bell Laboratories. Sua primeira utilização importante foi a reescrita do Sistema
Operacional UNIX, que até então era escrito em assembly.
Em meados de 1970 o UNIX saiu do laboratório para ser liberado para as
universidades. Foi o suficiente para que o sucesso da linguagem atingisse proporções
tais que, por volta de 1980, já existiam várias versões de compiladores C oferecidas
por várias empresas, não sendo mais restritas apenas ao ambiente UNIX, porém
compatíveis com vários outros sistemas operacionais.
O C é uma linguagem de propósito geral, sendo adequada à programação
estruturada. No entanto é mais utilizada escrever compiladores, analisadores léxicos,
bancos de dados, editores de texto, etc..
A linguagem C pertence a uma família de linguagens cujas características são:
portabilidade, modularidade, compilação separada, recursos de baixo nível, geração
de código eficiente, confiabilidade, regularidade, simplicidade e facilidade de uso.

Visão geral de um programa C

A geração do programa executável a partir do programa fonte obedece a uma
seqüência de operações antes de tornar-se um executável. Depois de escrever o
módulo fonte em um editor de textos, o programador aciona o compilador que no UNIX
é chamado pelo comando cc. Essa ação desencadeia uma seqüência de etapas, cada
qual traduzindo a codificação do usuário para uma forma de linguagem de nível
inferior, que termina com o executável criado pelo lincador.

Editor (módulo fonte em C) => Pré-processador (novo fonte expandido) => Compilador (arquivo objeto) => Lincador (executável).

Sintaxe

A sintaxe são regras detalhadas para cada construção válida na linguagem C.
Estas regras estão relacionadas com os tipos, as declarações, as funções e as
expressões.
Os tipos definem as propriedades dos dados manipulados em um programa.
As declarações expressam as partes do programa, podendo dar significado a
um identificador, alocar memória, definir conteúdo inicial, definir funções.
As funções especificam as ações que um programa executa quando roda.
A determinação e alteração de valores, e a chamada de funções de I/O são
definidas nas expressões.

As funções são as entidades operacionais básicas dos programas em C, que
por sua vez são a união de uma ou mais funções executando cada qual o seu trabalho.
Há funções básicas que estão definidas na biblioteca C. As funções printf() e scanf()
por exemplo, permitem respectivamente escrever na tela e ler os dados a partir do
teclado. O programador também pode definir novas funções em seus programas, como
rotinas para cálculos, impressão, etc.
Todo programa C inicia sua execução chamando a função main(), sendo
obrigatória a sua declaração no programa principal.

Comentários no programa são colocados entre /* e */ não sendo considerados
na compilação.

Cada instrução encerra com ; (ponto e vírgula) que faz parte do comando.

Ex:
main() /* função obrigatória */
{
printf(“oi”);
}