Оператор sizeof возвращает число байтов в переменной или число байтов, занимаемых массивом.
sizeof(variable);
variable: любой тип переменной или массив (например, int, float, byte)
Количество байтов в переменной или байтов, занятых в массиве. (Size_t)
Оператор sizeof полезен для работы с массивами (например, массивом строк), это удобно для возможности изменить размер массива, не нарушая другие части программы.
Эта программа выводит текстовую строку по одному символу за раз. Попробуйте изменить текстовую фразу.
char myStr[] = "this is a test"; int i; void setup() { Serial.begin(9600); } void loop() { for (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 (i = 0; i < (sizeof(myValues) / sizeof(myValues[0])); i++) { // Здесь можно что-то сделать с элементом массива myValues[i]. }
Обратите внимание, что правильно отформатированная строка заканчивается символом NULL, значение ASCII которого равно 0.