我发布了两个代码。在第一个代码中,意外的输出将变为“ASH-2”。必须输出的输出是“ASH35”。 在第二个代码中,输出为“ASH35”。 现在,如果我删除'printf(“ASH”); '第一个代码中的行,值35被打印。
任何人都可以帮助我解决这个意想不到的行为,请提前感谢您调查此事。
//CODE 1
int* fun()
{
int k;
k=35;
return (&k);
}
int main()
{
int *j;
j=fun();
printf("ASH");
printf("%d",*j);
return 0;
}
//CODE 2
int fun()
{
int k;
k=35;
return (k);
}
int main()
{
int j;
j=fun();
printf("ASH");
printf("%d",j);
return 0;
}