sizeof()
Описание
Оператор
sizeof
возвращает количество байт в типе переменной или количество байт, занимаемых массивом.
Синтаксис
sizeof(variable)
Параметры
variable: то, размер чего нужно получить. Допустимые типы данных: любой тип переменной или массив (например, int, float, byte).
Возвращаемое значение
Количество байт в переменной или байтов, занятых в массиве. Тип данных:
size_t
.
Пример кода
Оператор
sizeof
полезен при работе с массивами (например, со строками), где удобно иметь возможность изменять размер массива, не нарушая другие части программы.
Эта программа выводит текстовую строку посимвольно. Попробуйте изменить текстовую фразу.
char myStr[] = "this is a test";
void setup() {
Serial.begin(9600);
}
void loop() {
for (byte i = 0; i < sizeof(myStr) - 1; i++) {
Serial.print(i, DEC);
Serial.print(" = ");
Serial.write(myStr[i]);
Serial.println();
}
delay(5000); // замедляем программу
}
Примечания и предупреждения
Обратите внимание, что
sizeof
возвращает общее количество байт. Поэтому для массивов более крупных типов переменных, таких как int, цикл for будет выглядеть примерно так.
int myValues[] = {123, 456, 789};
// этот цикл for корректно работает с массивом любого типа или размера
for (byte i = 0; i < (sizeof(myValues) / sizeof(myValues[0])); i++) {
// что-то делаем с myValues[i]
}
Примечание
Правильно сформированная строка заканчивается символом NULL, имеющим ASCII-значение 0.