Con l'introduzione della pausa finale (con getchar o altro) in realtà è stata come minimo alterata la specifica del programma che, si suppone, fosse solo quella di scrivere "hello world" a console ed uscire, non quella di scrivere "hello world" a console ed aspettare ad infinitum.

Per vederne il risultato prima che il programma si chiudesse, potevi ad esempio "lanciare" il programma direttamente da console, oppure utilizzare un debugger.
;-)