Come mai questa funzione entra in un loop infinito ???

codice:
int length(char str[20]){
  int i;

  while(str++!='\0')
	  i++;
  return i;
}
Quando incontra il terminatore, non si dovrebbe fermare il ciclo ???

Dove sbaglio ???