VARIÁVEIS DO C

  O C possui suas variáveis divididas em:

  CHAR / INT

  Variáveis do tipo inteiro.
  O char não é uma variável do tipo caractere? Não deveria guardar letras? Sim ela guarda o código ASCII da letra. Porém, pode ser usada normalmente como se fosse do tipo inteiro. O que vai diferenciar é na hora de escrever na tela. Exemplo:
#include <stdio.h>

char letra;

int main(void)
{
  letra = 'a';
  letra = 0x61;
  letra = letra+2;

  printf("Saida 1: %d\n",letra);
  printf("Saida 2: %c\n",letra);

  return 1;
}
  Resultado impresso na tela:
  Saida 1: 99
  Saida 2: c

  Obs:   As variáveis do tipo inteiro podem ser:

VARIÁVEL TAMANHO
char 8 bits
short int 8 bits
int 16 bits
long int 32 bits


  Número sinalizado x não sinalizado

  Na linguagem C, as variáveis são distinguidas em números sinalizados e não sinalizados.
  Os termos unsigned e signed indicam se o número é não sinalizado ou sinalizado, respectivamente. Quando for sinalizado, o último bit (o mais significativo) indica o sinal do número. O valor 0 indica um número positivo e o valor 1 indica um número negativo.
  Por exemplo, os números +4 e -8, se representados como char (1 byte ou 8 bits), terão as seguintes configurações em binário:
 bits  76543210
 --------------
  +4 = 00000100
  -8 = 11111000

  Um número sinalizado de 1 byte varia de -128 a 127, enquanto que um número não sinalizado de 1 byte varia de 0 a 255. Ex:
#include 

unsigned char a;
char b;

int main(void)
{
  a = 200;
  b = 200;

  printf("Valor de a: %d.\n", a);
  printf("Valor de b: %d.\n", b);

  return 1;
}
  Saída:
  Valor de a: 200.
  Valor de b: -56.

  A declaração de unsigned/signed deve sempre vir antes do tipo de dado. Observe que para o signed, não é necessário a indicação (default).

 



  FLOAT

  Variável que trabalha com números reais.
  O C é tão poderoso, que trabalha com números de 3,4e-4096 até 3,4e+4096. Excelente para cálculos de alta precisão.
  Os principais tipos são float, double e long double, este último o mais preciso.

  Exemplo:
#include <stdio.h>
#include <math.h>

#define M_PI 3.1415927
double angulo;

int main(void)
{
  angulo = M_PI/4.0;
  printf("O cosseno de pi/4 é %f.", cos(angulo));

  return 1;
}
  Saída:
  O cosseno de pi/4 é 0.707.

VARIÁVEL TAMANHO
float 32 bits 4 bytes
double 64 bits 8 bytes
long double 80 bits 10 bytes

  O termo M_PI que aparece no programa é uma macro. Macro associa um nome a um conjunto de símbolos. Temos também a constante, que é um tipo de dado que associa um nome a um valor e este valor é imutável.
  As macros e constantes são declaradas da seguinte forma:

#define nome conjunto_de_simbolos
const nome_da_constante = valor

Exemplo:
#include <stdio.h>

#define M_PI 3.1415927
#define formula(x) (x*x)
const raio = 4;
double a;

int main(void)
{
  a = M_PI;
  printf("M_PI: %f\n", a);

  a = formula(4.0);
  printf("Fórmula: %f\n", a);

  printf("Raio: %d\n", raio);

  return 1;
}
  Saída:
  M_PI: 3.1415927
  Fórmula: 16.000000
  Raio: 4

  Observação importante:

  No Hi-Tech C, quando são utilizados pontos flutuantes (double, float), é obrigatória a indicação da biblioteca "libf" na compilação. No caso do exemplo acima, deve-se compilar assim:
A>c -lf teste
  Onde teste é referente ao nome de arquivo "teste.c".

  Caso não seja usada a opção "-lf", um erro em tempo de link acontece:
undefined symbol:
flmul



  STRING

  A variável string é declarada através de um vetor de char ou um ponteiro de char. Exemplo:
#include <stdio.h>
#include <string.h>

char nome[10];
char *endereco;

int main(void)
{
  strcpy(nome,"Cristiane");
  endereco = "Salvador";

  printf("A %s mora em %s.\n", nome, endereco);

  return 1;
}
  Saída:
  A Cristiane mora em Salvador.

  A manipulação de strings requer uma biblioteca chamada string.h. A função strcopy insere na variável nome o valor "Cristiane".


/MARMSX/CURSOS/C--