试图打印出指针的值,期望指针指向的对象的地址,而编译器返回对象的值

时间:2016-01-11 04:47:35

标签: c++ pointers

我是C ++的新手,正在尝试学习指针的概念。我已经声明了一个指针* pStart并将其初始化为等于' text'。当我试图打印出指针的值时,我希望它等于' text'相反,编译器存储了字符串' hello'。有人可以向我解释为什么会这样吗?

char text[] = "hello";

char *pStart = text;

cout << pStart << "  +  " << *pStart <<  "  + " <<  &pStart << endl;

1 个答案:

答案 0 :(得分:1)

此C ++功能称为operator overloading。根据输入值的类型,调用某种类型的流操作符。对于字符输入,查找&#34;插入字符&#34;在上面的链接或here

试试这个:

std::cout << std::hex << reinterpret_cast<int>(pStart);