Scusate probabilmente sono stupido io ma non mi entra bene nella testa come itoa fà quello che fà...per favore ditemi se i passaggi che ho capito sono corretti e aiutatemi con quelli che non m'entrano...

in pratica:

codice:
/* Riceve l'intero da convertire e  il puntatore alla stringa dove mettere la conversione e non ritorna alcun valore */
void itoa(int n, char *s)   

{

  int i, sign;



  if ((sign = n)<0)
   //imposta la variabile sign con il valore di n e se il numero è negativo
    n = -n;             // allora metti in n il suo modulo

  i = 0;

  do {

    s[i++] = n%10 + '0';//in s[0], s[1],etcetc metti... (che ci mette esattamente)? perchè+0? 

  } while ((n /= 10) > 0);  //finchè n!?!?! che condizione è (n /=10)>0 ?!?!?1   

  if (sign<0)    //se sign <0 ma non lo aveva già fatto questo controllo? o questo è alla fine? perchè lo rifà?

    s[i++] = '-';   //metti - alla fine (ma il carattere - serve ad indicare nella stringa che il numero è negativo?

  s[i] = '\0';    // metti il carattere di fine stringa

  reverse(s);  // inverti la stringa

}
Temo di aver fatto parecchia confusione...potete aiutarmi un po'?

Grazie