有大佬能解释一下这个代码吗?#include<stdio.h>#include<string.h>#include<stdlib.h>struct tongxunlu{    char xingming[11];	char shengri[9];	char dianhuahaoma[18];} s[10];int cmp(void const *a, void const *b){    return strcmp(((struct tongxunlu *)a)->shengri, ((struct tongxunlu *)b)->shengri);}int main(){    int n, i;    scanf("%d", &n);    for (i = 0; i < n; i++)    scanf("%s%s%s", s[i].xingming, s[i].shengri, s[i].dianhuahaoma);    qsort(s, n, sizeof(s[0]), cmp);    for (i = 0; i < n; i++)    printf("%s %s %s\n", s[i].xingming, s[i].shengri, s[i].dianhuahaoma);    return 0;}