关于operator char*()的有关问题

关于operator char*()的问题
我定义了一个student类,重载了char*()
C/C++ code

student::operator char*()
{
    char *p="wow!";
    return p;
}

int main()
{

    student stu;
    std::cout<<stu;//这怎么输出的是地址,而不直接输出字符串?
         return 0;
}





为什么输出的是地址(0046F01C),而不直接输出字符串?

------解决方案--------------------
char*本来就是地址……况且你重载了以后不是内置类型了,cout仅仅对内置类型char*才会输出字符吧……
------解决方案--------------------
C/C++ code

student::operator char*() const
{
    char *p="wow!";
    return p;
}

friend std::ostream& operator<<(std::ostream& os, cosnt student& s)
{
    return os<<static_csat<const char*>(s);
}