It just points to the start of a location in memory where 5 characters have been allocated. Memory is contiguous, so there is likely more memory addressed before and after that point; you just shouldn't be accessing it.
This is a bit of a simplification, but consider the following:
Suppose I gave you a list of a characters on a slip of paper, labelled like so:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 ...
a x 5 0 t t t t u m 2 1 0 . 4 ' e v e i ... |
I tell you, "When I ask for a string, read from the number I give you until you hit a period."
Then I say, "Could you arrange for 6 characters of space to be available for me to strong something?"
You reply, "Sure, all the characters on here are garbage anyway. I'll give you space starting at 05."
Then I ask, "What is the string at 05?"
To answer this, you only need to know the rules for reading a string from an address, as I gave above. You start at the number and read until you hit a period; simple enough. So you answer "tttum210", as that starts at 05 and goes until the period at 14.
But wait, I only asked for 6 characters of space! The fact is, it doesn't matter. I asked you to read the string at 05 at the rules are clear on how to do that.
So back to your actual example, it doesn't make much sense to say "null char or not" as that is the only way to identify the end of a C-style string is by the null character; there string class (or anything else that handles C-strings) has no special way of taking the pointer to the beginning of the string and magically determining the size you allocated.
Hope this helps.