Código de Exemplo
O perador sizeof
é útil para manipular arrays (tais como strings), onde é conveniente ser possível mudar o tamanho do vetor sem quebrar outras partes do programa.
O programa abaixo imprime um string um caractere de cada vez. Tente mudar o texto da frase.
char minhaStr[] = "Esse é um teste";
void setup() {
Serial.begin(9600);
}
void loop() {
for (byte i = 0; i < sizeof(minhaStr) - 1; i++) {
Serial.print(i, DEC);
Serial.print(" = ");
Serial.write(minhaStr[i]);
Serial.println();
}
delay(5000); // espera 5 segundos
}
Notas e Advertências
Note que sizeof
retorna o número total de bytes. Então, para vetores de tipos de dados maiores, como int
, o loop for
parece algo do tipo abaixo.
int meusValores[] = {123, 456, 789};
// este loop for funciona corretamente com um array de qualquer tipo ou tamanho
for (byte i = 0; i < (sizeof(meusValores)/sizeof(meusValores[0])); i++) {
// fazer algo com meusValores[i]
}
Note também que uma string apropriadamente formatada é encerrada com o símbolo NULL, que tem valor ASCII 0.