已分配新内存的指针的cout

时间:2016-01-03 02:56:42

标签: c++ pointers iostream cout

我是c ++的新手,对以下代码有疑问: 为什么displayString中的cout显示实际的字符串而不是字符串的地址?它是一个指针,所以它的值应该是地址吧?

#include <iostream>
using namespace std;

class myString
{
    char* stringPtr=NULL;
public:
    myString(char* inputPtr) {
        if(inputPtr!=NULL) {
            stringPtr=new char [strlen(inputPtr)+1];
            stringPtr=inputPtr;
        } else {
            stringPtr=NULL;
        }
    }
    ~myString() {
        if(stringPtr!=NULL) {
            delete [] stringPtr;
        }
    }
    void displayString() {
        cout << stringPtr << endl;
        //WHY DOES THIS DISPLAY THE VALUE THE
        //POINTER POINTS TO AND NOT THE ADDRESS?
    }
};

int main() {
    myString firstString("hello world");
    firstString.displayString();
}

0 个答案:

没有答案