文字列の場合、予測できない動作が発生しています。次のようになります。
int main()
{
char *str = charfun();
printf("%s",str); // This is printing garbage values
printf("%c%c%c%c",str[0],str[1],str[2],str[3]); /* if I am printing
like this it is printing the result "Helo" why is it so ?
and str[4] is '\0' (checked its ASCII value)*/
return 0;
}
char* charfun()
{
char a[10]="Helo";
return a;
}
編集 -
私が心配しているのは、私が返す地元の住所ではありません。しかし、2つのprintfが従う印刷方法論を理解し、異なる結果を出したいです。