Esta página também está disponível em outros 2 idiomas.

sizeof()

[Utilities]

Descrição

O operador sizeof retorna o número de bytes de uma variável, ou o número de bytes ocupados em um vetor.

Sintaxe

sizeof(variável)

Parâmetros

variável: uma variável ou vetor de qualquer tipo (ex: int, float, byte)

Retorna

O número de bytes em uma variável ou o número de bytes ocupados em um vetor. (size_t)

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.

Ver Também