Может ли кто-нибудь помочь мне понять разницу между методом sizeof и strlen в программировании c?
Ответ 1
strlen() используется для получения длины массива символов/строки.
sizeof() используется для получения фактического размера любого типа данных в байтах.
Кроме того, sizeof() - это выражение времени компиляции, дающее вам размер типа или типа переменной. Он не заботится о значении переменной.
strlen() - это функция, которая принимает указатель на символ и перемещает память от этого символа, ища символ NULL. Он подсчитывает количество символов до того, как найдет символ NULL. Другими словами, он дает длину строки с NULL-концами C-стиля.
Оба они почти разные. В С++ вам не нужно слишком много, strlen() для строк C-стиля, который должен быть заменен С++-style std::strings, тогда как основное приложение для sizeof() в C является аргументом для таких функций, как malloc(), memcpy() или memset(), которые вы не должны использовать в С++ (используйте новые, std::copy() и std::fill() или constructors).
Ответ 2
sizeof не является методом. Это конструкция времени компиляции, которая определяет объем памяти определенного типа или переменной. strlen, с другой стороны, является функцией, которая подсчитывает количество последовательных ненулевых значений char, начиная с указанного места в памяти (что бывает так же, как определение длины строки C с нулевым завершением).