结构体连表和结构体数组
struct student {
char num[10];
int age;
};
typedef struct student ST;
//这是定义的结构体
//这是按结构体中的学号num排序
void sort(ST *s)
{
int max_id,i,j;
ST tmp;//交换的是某个学生的所有信息,所以要定义一个结构体变量
for(i=0;i<2;i++)
{
max_id=i;//i表示某轮查询最大值应处于第i个元素
for(j=i+1;j<3;j++)
{
if(strcmp((s+max_id)->num,(s+j)->num)>0)
max_id=j; //将最大值的位置替换为原来记录的最大值的位置
}
//将最大值与第i个元素进行交换
tmp=*(s+max_id);
*(s+max_id)=*(s+i);
*(s+i)=tmp;//*(s+max_id)=stu[max_id]
}
printf("\t学号\t年龄\n");
for(i=0;i<3;i++)
{
printf("\t%s\t%d\n",st[i].num,st[i].age);
}
}
//我想知道红字部分交换的是什么?内容还是地址? 如果将后面的结构体指针改成结构体数组,那交换的又是什么呢?