为什么输出时的指针那里不带号,不带可以编译成功,而带*则显示错误
#include<stdio.h>
struct students{
int num;
char name[15];
char sex;
int age;
double grade;
};
int main(void)
{
int n, i, j;
struct students stu[10], *p[10], temp;
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d %s %c %d %lf", &stu[i].num, stu[i].name, &stu[i].sex, &stu[i].age, &stu[i].grade);
p[i] = &stu[i];
}
for(i=0;i<n;i++){
for(j=0;j<n-1;j++){
if(p[j]->grade<p[j+1]->grade){
temp=*p[j+1];
*p[j+1]=*p[j];
*p[j]=temp;
}
}
}
for(i=0;i<=n;i++){
printf("%d %s %c %d %0.1f\n", p[i]->num, p[i]->name, p[i]->sex, p[i]->age, p[i]->grade);
}
}