Conceitos interessantes
Modificadores de tipo
E mais uma vez falaremos de tipos primitivos, como havíamos visto, os tipos primitivos têm tamanhos diferentes na memória, e estes tamanhos podem ser expandidos ou reduzidos.
Long
O long
alonga (expande) a capacidade de variáveis do tipo int
, float
e double
.
Lembrando que os valores de tamanho variam de computador para computador.
int inteiro = 0; // 4 bytes
long int l_inteiro = 0; // 8 bytes
double real = 10E49; // 6 bytes
long double l_real = 10e49; // 8 bytes
E para alcançar o máximo de tamanho de uma variável para a sua arquitetura use o long long int
ou simplesmente long long
.
Short
O short
encurta a capacidade de variáveis do tipo int
.
int inteiro = 0; // 4 bytes
short int s_inteiro = 0; // 2 bytes
Signed e unsigned
signed
e unsigned
significam respectivamente “com sinal” e “sem sinal”.
int c = 90;
int i = +90;
int j = -90;
Sempre que você declara um número, ele por padrão é signed
, portanto suporta números negativos e positivos, e o unsigned
só suporta números positivos.
int inteiro = 0; // intervalo: -2147483648 a 2147483647
unsigned int us_inteiro = 0; // intervalo: 0 a 4294967295
Entrada e saída de dados
Você já viu anteriormente uma forma de saída de dados: o printf
:
printf("Hello mundo!!\n");
Sem este
\n
, caso você escreva outra coisa os dois irão aparecer juntos.
Caractere de scape ( “\” )
O caractere de scape, no C, é o \
e ele dá “poderes” ao seu texto, pode ser usado em variáveis do tipo char
e em strings, mas para ilustrá-lo eu irei representá-lo sempre dentro de um printf
.
\n
printf("\n1ª linha\n2ª linha\n3ª linha\n"); // \n: quebra de linha.
Esse \n
é uma quebra de linha, ou seja, sempre que tiver um \n
o printf
vai pular uma linha e escrever o que estiver na frente.
saída:
1ª linha
2ª linha
3ª linha
\t
printf("\tjoao"); // \t: espaçamento ou tabulação (efeito da tecla "tab").
Esse \t
é uma tabulação, o que estiver a frente dele irá se deslocar para a direita (->).
saída:
joao
\b
printf("joao\b"); // \b: apaga um caractere da linha (efeito da tecla "backspace").
Esse \b
é um backspace, o caractere anterior a ele será apagado.
saída:
joa
\r
printf("coisas mais coisas\r outras coisas"); // \r: elimina tudo o que está antes dele na linha.
Esse \r
vem de “remove”, todos os caracteres da mesma linha e anteriores a ele serão apagados.
saída:
outras coisas
\v
printf("coisas\voutrascoisas\vjoao\v."); // \v: tabulação vertical.
O \v
vai quebrar a linha assim como o \n
, mas em vez de iniciar a nova no inicio da linha, ele inicia no “final” da anterior, formando uma “escadinha”.
saída:
coisas
outrascoisas
joao
.
\”
printf("\"joao\" é um nome feio"); // \": exibe as aspas duplas.
Exibe as aspas duplas ( "
), pois se você escrever simplesmente "
o C vai achar que aquele é o fim da string.
saída:
"joao" é um nome feio
\‘
printf("it\'s estranho"); // \': exibe as aspas simples ou apótrofos.
Exibe a aspa simples (que alguns chamam de apóstrofo).
saída:
it's estranho
\\
printf("isso é uma contra-barra: \\"); // \\: exibe a contra-barra
saída:
isso é uma contra-barra: \