Ответ 1
Да,
size_t n = sizeof(tbl) / sizeof(tbl[0])
- наиболее типичный способ сделать это.
Обратите внимание, что использование int
для размеров массива - не самая лучшая идея.
У меня есть массив char*
следующим образом:
char *tbl[] = { "1", "2", "3" };
Как использовать оператор sizeof
для получения количества элементов массива, здесь 3?
Ниже было сделано, но верно ли это?
int n = sizeof(tbl) / sizeof(tbl[0])
Да,
size_t n = sizeof(tbl) / sizeof(tbl[0])
- наиболее типичный способ сделать это.
Обратите внимание, что использование int
для размеров массива - не самая лучшая идея.
Более короткая и, возможно, более чистая версия будет выглядеть как
sizeof tbl / sizeof *tbl
:)
Да, это даст вам количество элементов в массиве tb1.
int n = sizeof(tbl) / sizeof(tbl[0])
Интерпретация:
sizeof (tb1) предоставит размер всего массива i.e, tb1 = 3 байта
sizeof (tb1 [0]) дает размер символа, так как tb1 [0] дает значение символа (значение по адресу tb1 + 0) = 1 байт
Разделение этих двух даст вам 3 элемента