Se alguém puder fazer um resumo explicativo desse programa agradeço muito=)   #include<stdio.h> #include<stdlib.h.> #include<string.h> #define MAX 5  typedef struct {         char nome[50];         char tel[15];         }registro;          void inserir          (registro *agenda,int cont);    /*Funçoes sem retorno,passando o vetor de registro  */ void modificar        (registro *agenda,int x); void mostrar          (registro *agenda,int cont);  int main () {            registro  agenda[MAX];  /*Vetor resgistro */       int i,cont=0,op,x;              for(;;)  {       system("color 0f");       system("cls");       printf("                             **    Menu   **                                            \n\n\n");       printf("                     Digite a opcao desejada:\n\n\n1-Novo cadastro\n\n2-Modificar \n\n3-Mostrar banco de cadastro\n\n4-Sair\n");       scanf("%d",&op);              switch(op)       {                 case 1:                                            if(cont<MAX)                      {                                 inserir(agenda,cont); /*Como o próprio nome do vetor já é um ponteiro que aponta para o primeiro elemento do vetor,não é necessário passar o endereço do vetor*/                       cont++;                                                               break;                      }                      else                      {                      printf("Agenda cheia!\n\n");                      getchar();                      getchar();                      break;                      }                 case 2:                      if(cont){                      printf("Numero do cadastro a ser modificado: ");                      scanf("%d",&x);                      modificar(agenda,x);                              break;                              }                         else                         {                          printf("Banco de registro vazio!");                          getchar()          ;      getchar()        ;                                             }                  break ;                                                                                                  case 3:                      mostrar(agenda,cont);                 break ;                                       case 4:                      printf("\a");                      exit (1) ;                                       break;       }   }  return 0; }  void inserir          (registro *agenda,int cont) {            getchar();      printf("Digite o nome: ");      gets(agenda[cont].nome);        /*alocaçao da string em cada indice do vetor,sendo variado pelo 'cont' */      printf("Digite o tel: ");      gets(agenda[cont].tel);      printf("Cadastro realizado com sucesso!");      getchar();      }       void modificar        (registro *agenda,int x) {           getchar();      printf("Digite o novo nome: ");      gets(agenda[x-1].nome);     /* 'x-1' porque o vetor começa no indice 0   */      printf("Digite o novo tel: ");      gets(agenda[x-1].tel);      printf("Cadastro realizado com sucesso!");      getchar();         } void mostrar          (registro *agenda,int cont) {      int i;      for(i=0;i<cont;i++)      printf("cadastro[%d]:\n\nnome: %s\ntel:%s\n\n",i+1,agenda.nome,agenda.tel);         getchar();      getchar();        }