The special relationship between arrays and pointers extends to C-style strings. Consider the following code:
char flower = "rose";cout << flower << "s are red\n";
The name of an array is the address of its first element, so
flower in the
cout statement is the address of the
char element containing the character
cout object assumes that the address of a
char is the address of a string, so it prints the character at that address and then continues printing characters until it runs into the null character (
\0). In short, if you give
cout the address of a character, it prints everything from that character to the first null character that follows it.
The crucial element here is not that
flower is an array name but ...