请问在打问号的地方为什么是上面的而不是下面的,为什么对ptr数组更改嗯

#include

#define NUM 5
struct MyRecord{
int val;
bool flag;

};
void main(void)
{
MyRecord rec[NUM];
MyRecord *ptr[NUM];
int i,j,k;
for(i=0;i{
scanf("%d",&rec[i].val);

rec[i].flag=false;
}

for(i=0;i
for(j=0;j{
if(rec[j].flag)
continue;
ptr[i]=&rec[j];
break;
}
for(k=0;k{
if(rec[k].flag)continue;
if((*ptr[i]).val>rec[k].val)
ptr[i]=&rec[k];
}
(*ptr[i]).flag=true;?
//rec[i].flag=true;?
}
for(i=0;i{
printf("%d",(*ptr[i]).val);

}
printf("\n");
}

其实就是rec[k]和rec[i]的区别
ptr[i]=&rec[k];这不是把ptr[i]指向了rec[k]吗
那你前面判断的是rec[k],你去改rec[i]不改乱套了