vs中,c程序,puts()明明地址相同,在主程序中却输出乱码
#include
#include
#define LEN 10
char* fanxu(char* yuan);
int main(void)
{
char yuan[LEN];
char* jiance;
puts("请输入一个字符串(必须小于等于9个字符)");
again:
while (gets_s(yuan, LEN))
{
jiance = fanxu(yuan);
printf("%p\n", jiance);
puts(jiance);
puts("是否继续输入,输入q退出,输入其他继续");
if (getchar() != 'q')
{
while (getchar() != '\n')
continue;
puts("程序继续,请按要求继续输入");
goto again;
}
else
puts("程序结束");
break;
}
return 0;
}
char* fanxu(char* yuan)
{
char fanxu[LEN];
int i;
for (i = 0; i < strlen(yuan); i++)
fanxu[i] = yuan[strlen(yuan) - 1 - i];
fanxu[strlen(yuan)] = '\0';
printf("%p\n", fanxu);
puts(fanxu);
return fanxu;
}
这只能说明 首地址是相同的,不能说明他们指向的数据是一样的
不知道你这个问题是否已经解决, 如果还没有解决的话: