南京河西刻章:指针的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 11:15:31
struct STU
{char name[10];
int num;
int score;
};
main()
{struct STU S[5]={{"yur",20041,703},{"jfjf",20042,580},
{"whfh",200412,680},{"jfh",20041,550},{"jwfoe",200412,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++)p[i]=&S[i];
for(i=0;i<4;i++)
for(j=0;j<5;j++)
if(p[i]->score>p[j]->score);
{t=p[i];p[i]=p[j];p[j]=t;}
printf("%d %d\n",S[1].score,p[1]->score);
}

想问的是为什么编译出来,两个数都一样?可以详细说说吗??
struct STU
{char name[10];
int num;
int score;
};
main()
{struct STU S[5]={{"yur",20041,703},{"jfjf",20042,580},
{"whfh",200412,680},{"jfh",20041,550},{"jwfoe",200412,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++)p[i]=&S[i];
for(i=0;i<4;i++)
for(j=0;j<5;j++)
if(p[i]->score>p[j]->score)
{t=p[i];p[i]=p[j];p[j]=t;}
printf("%d %d\n",S[1].score,p[1]->score);
}

是这样的!!!

if(p[i]->score>p[j]->score);
最后面的分号使得
for(i=0;i<4;i++)
for(j=0;j<5;j++) 是空操作

去掉分号结果就是不一样的了