Qualcuno sa spiegarmi questo codice?
main(int argc,char** argv,char** envp){
while(*envp)
printf("%s\n",*envp++);
}
Quello che non capisco è per quale ragione effettui l'incremento ++ in quel modo. La dereferenziazione la esegue dopo l'incremento e qui ci sono. Ma perché si sposta di un solo byte all'interno dell'array di puntatori per passare all'elemento successivo??? Non avrebbe dovuto fare *(envp+sizeof(char *))?? In quel modo la mia ignoranza mi porta a dire che se envp puntava al primo elemento dell'array di puntatori, sommandovi 1 si dovrebbe ritrovare diciamo in mezzo al primo elemento, e non all'inizio del secondo....qualcuno sa dirmi se il compilatore si inventa qualcosa di strano in questi casi, del genere adattare l'operatore ++ al tipo di dato?? :roll: