关于C++中结构的一个小问题
#include <iostream.h>
#include <STRING.h>
struct Person
{
char name[20];
unsigned long id;
float salary;
};
Person allone[3]={{"tom",12345,339},
{"jack",13916,449},
{"john",27519,311}};
void main()
{
Person* Pa[3]={&allone[0],&allone[1],&allone[2]};
Person* temp;
for(int i=0;i<3;i++)
{
for(int j=0;j<=2-i;j++)
{
if (Pa[j]->salary>Pa[j+1]->salary)
{
temp=Pa[j];
Pa[j]=Pa[j+1];
Pa[j+1]=temp;
}
}
}
for(int k=0;k<3;k++)
{
cout<<(*Pa[k]).name<<" "<<(*Pa[k]).id<<" "<<(*Pa [k]).salary<<" "<<endl;
}
}
输出却是下面的结果
? 2 1.7448e-039
john 27519 311
tom 12345 339
请问问题出在哪里?