4. Variáveis¶
4.1. Variáveis simples¶
Uma variável define-se com a seguinte sintaxe:
{tipo} {nome};
Exemplos:
char c;Variável do tipocharcom o nomec
int i;Variável do tipointcom o nomeindex
uint8_t x;Variável do tipo inteiro natural representada a 8 bits com o nomex
int16_t y;Variável do tipo inteiro relativo representada a 16 bits com o nomey
Definição de variável com inicialização:
{tipo} {nome} = {valor};
Exemplos com inicialização:
char c = 'a';Variável inicializada com o código numérico do caractere 'a'.
int i = 0;Variável inicializada com o valor zero.
uint8_t x = 0xff;Variável inicializada com o valor máximo.
int16_t y = -1;Variável inicializada com menos um.
4.2. Array de variáveis¶
Arrays são sequências de valores do mesmo tipo armazenados em posições de memória contiguas.
Um array define-se com a seguinte sintaxe:
{tipo} {nome} [ {dimensão} ];
Exemplos de definição:
char c[10];Array de dez caracteres.
int fruit[100];Array de cem valores inteiros.
O acesso aos elementos do array realiza-se através do operador indexação []. Os índices vão de zero – primeira posição – à dimensão menos um – última posição.
No exemplo anterior, as posições do array fruit vão de 0 a 99.
Exemplos de acesso:
fruit[0] = 34;A primeira posição do arrayfruité afetada com trinta e quatro.
c[9] = 'f';A última posição do arraycé afetada com o código numérico da letra “f”.
Em linguagem C não se pode afetar um array com a totalidade do conteúdo de outro array numa operação de afetação. Poder-se-á contudo, realizar a afetação posição a posição.
Considerando:
int a[3];
int b[] = {10, 20, 30}:
a = b; é inválido
a[0] = b[0];
a[1] = b[1];
a[2] = b[2];
é válido. (Embora não seja o código adequado para expressar a cópia de um array extenso.)
4.2.1. Definição de arrays com inicialização¶
{tipo} {nome}[] = {lista de valores};
Exemplos com inicialização:
char c[] = {'a', 'b', 'c', 'd'};Array de quatro caracteres inicializado com o código numérico de 'a' na primeira posição, de 'b' na segunda posição, de 'c' na terceira posição e de 'd' na quarta posição.
uint8_t x[] = {0xff, 0xaa};Array de duas posições iniciado com0xffe0xaanas primeira e segunda posições, respetivamente.
int i[10] = {0};Array de dez posições, com todas as posições iniciadas a zero.
int32_t k[100] = {0b00110011, 0xfa, 167, 028};Array com cem posições. As primeiras quatro são inicializadas como os valores indicados, as restantes são inicializadas com zero.