C++菜鸟的一个问题: 指针变成整形,再由整形变成指针,为什么输不出来了

#include
#include
#include
class List;
class person
{
public:
friend class List;
private:
person() {next=0;}
person *next;
char name[10];
};
class List
{
public:
List(){list=0;}

int sort();

private:
person *end();
person *list;

};

int List::sort()
{
person *p=list,*r;
int aaa[100];
r=p;
aaa[0]=int(r);
p=(person *)aaa[0];
cout<<"姓名:"<name<<endl; //为什么输不出来 怎么才能输出来 呢(假设已经给name赋值了)
return 1;
}

对象名.name,或者对象的指针->name的方式输出 ??