Approfitto della tua pazienza per farti ancora una domanda

Mi spieghi perchè se scrivo questo programma:

codice:
#include<stdio.h>
main()
{char string[20];
int i;
for(i=0;i<20;i++)
string[i]='a';
for(i=0;i<20;i++)
{if(string[i]=='\0')
printf("\nLa posizione del terminatore è %d\n",i);}
printf("%s",string);
getch();}
mi stampa a video la sequenza di 'a' seguita da alcuni caratteri "strani" (YA ecc...)?
inoltre in questo caso qui il terminatore non è presente giusto?

grazie ancora