Let me try two ways -
(1) The "just because" - strlen expects you to pass a pointer, not the actual data, so you must pass a pointer.
strlen() - Standard C String & Character - C Programming Reference - eLook.org
(2) Pointers are addresses. When dealing with strings (and later with objects) it's easier to pass the address of the object, which is only four bytes, instead of copying the whole string or object.
This also has another advantage; if you have the address of the original string or object, you can make changes to that string or call methods on that object and they'll be reflected in the original. If you passed strings or object by value, the way that ints and floats usually are, then you would not be able to affect the original.
The function strlen() doesn't change the contents of the string you pass, but some other functions do; it's an important use of pointers. Check out this answer for more details:
parameter passing: pass by value and pass by refernce
If you understand that, you probably understand pointers.