在字符串的情况下,我遇到了一些不可预测的行为。这里是:
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;
}
编辑 -
我关心的不是我要返回的本地地址。我知道它会给我带来麻烦。但我想了解两个 printf 遵循的打印方法并给出不同的结果。