I know how to change a char in a char array but I wonder if we can change one element of a C-string pointed by a char pointer?

Code:
int main()
{
    char * p = "Hello World";
    *(p+1) = 'x';

    cout << p << endl;

    return 0;
}