注册 登录
编程论坛 C++教室

指针存放的不是地址吗,为什么输出的却是字符?

xueailu1314 发布于 2015-04-01 19:52, 433 次点击
#include<iostream.h>
#include<string.h>
class teacher
{private:
    char *name;
    int   age;

public:

    teacher(char *i,int j)
    {name=new char[strlen(i)+1];
     strcpy(name,i);
     age=j;
     cout<<"\n 调用teacher";
    }

    ~teacher()
    {delete name;
      cout<<"\n 调用~teacher"<<endl;
    }

    void show();
};

void teacher::show()
{
cout<<"\n name is:"<<name<<"year is:"<<age;//此处name输出的为什么是flydreams而不是name的地址?????
}

void main()
{teacher obj("flydreams",27);

 obj.show();
 
}
1 回复
#2
yangfrancis2015-04-01 21:59
char型如果用指针而你又输入了字符串的话,它自动会把第一个字符后面的字符依次排入该这个地址后面相连的地址,输出时也会自动变成输出所存的数据。这个是编辑器说了算的,也不必过分较真。如果要较真的话,人家char型只存一个字符,根本就不让你输入字符串了。
1