如下运行过程到底是为什么?
#include <stdio.h>#include <stdlib.h>
#include <string.h>
char *substr(char *p)
{
int i;
char a[100];
strncpy(a,p,sizeof(a));
p=a;
printf("%s\n",p);//这一句一加上就运行正常,一去掉就显示乱码,这到底是为什么呀
return(p);
}
void main()
{
char *p;
p="there is a example";
printf("\n截后的串为:%s\n",substr(p));
}为什么返回之前结果正确,返回之后不正确?
[[it] 本帖最后由 lqlayy 于 2008-5-12 15:33 编辑 [/it]]