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 tipo char com o nome c

int i; Variável do tipo int com o nome index

uint8_t x; Variável do tipo inteiro natural representada a 8 bits com o nome x

int16_t y; Variável do tipo inteiro relativo representada a 16 bits com o nome y

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 array fruit é afetada com trinta e quatro.

c[9] = 'f'; A última posição do array c é 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 com 0xff e 0xaa nas 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.