Linguagem C
86 pág.

Linguagem C


DisciplinaAlgoritmos e Estrutura de Dados I702 materiais7.920 seguidores
Pré-visualização18 páginas
O C foi criada no centro de 
pesquisas da Bell Laboratories em 1972 por Dennis Ritchie tendo como meta características de 
flexibilidade e portabilidade. Em 1983 a ANSI (American National Standards Institute) 
estabeleceu um padrão C ANSI. A linguagem C é classificada como linguagem de alto nível 
somando-se as funcionalidades de linguagens de baixo nível, isto é, C permite a manipulação de 
bits, bytes e endereços e, ao mesmo tempo, suportam o conceito de tipos de dados. 
A linguagem C é uma linguagem estruturada. 
 Outro aspecto a ser considerado, é que o padrão C ANSI estabelece 32 palavras-
chaves. São palavras reservadas que são os comandos que compõem a linguagem C. As linguagens 
de alto nível tipicamente possuem várias vezes esse número de palavras reservadas. 
A linguagem C é uma linguagem compilada. A geração do programa executável a partir 
do programa fonte obedece a uma seqüência de operações: 
9 Criar o programa; 
9 Compilar o programa; 
9 Linkeditar o programa. 
 
2.2 Sintaxe da Linguagem C 
A sintaxe são regras detalhadas para um construção válida em 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 
 21
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. 
A forma geral de um programa em C é: 
 
 
1. #include <stdlib.h> 
#include <stdio.h> 
 
int x=20; 
void func(void); 
 
int main(void) 
{ 
 int y=10; 
 printf(\u201cVariável global x=%d\n\u201d, x); 
 printf(\u201cVariável y=%d\n\u201d, y); 
 func(); 
 return(0); 
} 
 
void func(void) 
{ 
 printf(\u201dFim\n\u201d); 
} 
O padrão C ANSI determina 32 palavras-chave ou palavras reservadas que, combinadas 
com a sintaxe formal de C, foram a linguagem de programação C (tabela 2.1). 
 
Tabela 2.1 Lista de palavras-chave em C ANSI 
1. auto double int struct 
break else long switch 
case enum register typedef 
char extern return union 
const float short unsigned 
continue for signed void 
default goto sizeof volatile 
do if static while 
 
Muitos compiladores acrescentam outras palavras-chaves para explorar melhor os 
recursos dos processadores e otimização da utilização da memória. 
 
2.3 Identificadores 
Identificadores são os nomes usados para referenciar objetos definidos pelos usuário, 
isto é, nomes de variáveis, funções, rótulos, entre outros. O primeiro caractere deve ser uma letra ou 
um sublinhado e os caracteres subseqüentes devem ser letras, números ou sublinhados. O padrão C 
ANSI determina que identificadores podem ter qualquer tamanho, porém em geral, dependendo do 
compilador utilizado, considera-se apenas os 31 primeiros caracteres. 
Os identificadores não podem ser igual a uma palavra-chave de C ou nome de funções 
criadas pelo usuário ou que estão nas bibliotecas C. 
Em C, letras maiúsculas e minúsculas são tratadas diferentemente. Por exemplo: 
int count, Count, COUNT; 
Logo, count, Count e COUNT são três identificadores distintos. 
Componentes Iniciais: arquivos de 
cabeçalho, declaração de constantes, 
protótipos e variáveis globais. 
Função main(): Variáveis locais e instruções 
do programa. 
Implementação de Funções: Variáveis locais 
e definição das funções 
 22
2.4 Tipos de Dados 
Em C, há cinco tipos básicos de dados: caractere, inteiro, ponto flutuante, ponto 
flutuante de precisão dupla e sem valor: char, int, float, double e void, respectivamente. O 
tamanho e a faixa desses tipos de dados variam de acordo com o tipo de processador e com a 
implementação do compilador em C. O padrão C ANSI estipula apenas a faixa mínima de cada tipo 
de dado, não o seu tamanho em bytes (tabela 2.2). O tipo void declara explicitamente uma função 
que não retorna valor algum ou cria ponteiros genéricos. 
Em algumas situações é necessário modificar um tipo básico para atender às 
necessidades de diversas situações. Isto é conseguido através do uso de modificadores que alteram o 
significado de um tipo básico. Exceto o tipo void, todos os demais tipos básicos podem ter vários 
modificadores precedendo-os. 
Os modificadores podem ser: 
signed unsigned long short 
 
Tabela 2.2 Tipos de dados definidos no padrão C ANSI. 
Tipo Tamanho (bits) Faixa mínima 
char 8 -127 a 127 
unsigned char 8 0 a 255 
signed char 8 -127 a 127 
int 16 -32.767 a 32.767 
unsigned int 16 0 a 65.535 
signed int 16 -32.767 a 32.767 
short int 16 -32.767 a 32.767 
unsigned short int 16 0 a 65.535 
signed short int 16 -32.767 a 32.767 
long int 32 -2.147.483.647 a 2.147.483.647 
signed long int 32 -2.147.483.647 a 2.147.483.647 
unsigned long int 32 0 a 4.294.967.295 
float 32 Seis dígitos de precisão 
double 64 Dez dígitos de precisão 
long double 80 Dez dígitos de precisão 
 
2.5 Variáveis 
Variável é uma posição nomeada de memória utilizada para armazenar um valor que 
pode ser modificado pelo programa. As variáveis devem ser declaradas da seguinte forma: 
<tipo> <nome_da_variavel>; int x; 
 
2.5.1 Classe de Variáveis 
As variáveis podem ser declaradas em três lugares básicos: dentro de funções, na 
definição dos parâmetros das funções e fora de todas as funções, ou seja, variáveis locais, 
parâmetros formais e variáveis globais. Por exemplo: 
 23
1. #include <stdlib.h> 
2. #include <stdio.h> 
3. 
4. float g; /*g é variável global*/ 
5. 
6. float soma10(float c); /*c é parâmetro formal*/ 
7. 
8. int main(void) 
9. { 
10. float x; /*x é variável local*/ 
11. x=15; 
12. g=soma10(x); 
13. printf(\u201cg=%f\u201d,g); 
14. return(0); 
15. } 
16. 
17. float soma10(float c) 
18. { 
19. return(c+10); 
20. } 
 
2.6 Operadores 
2.6.1 Atribuição 
O operador de atribuição pode ser utilizado dentro de qualquer expressão válida em C. 
A forma geral do operador de atribuição é: 
nome_da_variavel = expressão; x = 10; 
A atribuição é válida para variáveis de tipos diferentes, ou seja, é possível converter os 
tipos de forma automática. Esta conversão é conhecida como conversão de tipos, porém deve-se 
observar que poderá ocorrer uma possível perda de informação. 
Em C, é permitido atribuição do mesmo valor para muitas variáveis em uma única 
expressão: 
var1 = var2 = var3 = expressão; x = y = z = 0; 
 
2.6.2 Aritméticos 
Os operadores aritméticos de C são: 
- Subtração 
+ Adição 
* Multiplicação 
/ Divisão 
% Módulo da divisão (resto) 
 
2.6.3 Incremento e Decremento 
C inclui dois operadores que geralmente não são encontrados em outras linguagens: 
-- Decremento 
++ Incremento 
 
 
 24
2.6.4 Relacionais e Lógicos 
O operador relacional refere-se à relação que os valores podem ter uns com os outros. O 
operador lógico refere-se à maneira como essas relações podem ser conectadas. A idéia de 
verdadeiro e falso é a base dos conceitos dos operadores lógicos e relacionais. Em C, verdadeiro é 
qualquer valor diferente de zero. Falso é zero. As expressões que usam operadores relacionais ou 
lógicos devolvem zero para falso e 1 para verdadeiro (tabela 2.3). A tabela