Try running this code and see how both types produce the same thing:
1 2 3 4 5 6 7 8 9 10 11 12 13
#include <iostream>
int main()
{
constchar awesomeness[25] = "I'm awesome!"; //This is an array
constchar *name = "Hello Dude!"; //This is also a type of array.
std::cout << name << std::endl;
std::cout << awesomeness << std::endl;
return 0;
}
To continue on from what @Stormboy said, because it is an array, what you are doing is you are passing the address in memory of first character of the string to the function. If you were then to, say, output the string, it just iterates over the memory, outputting each character, until the character has a value of 0 (or a null terminator).