程序如下:
#include<stdio.h>
int main()
{
char *x();
char *p;
p=x();
puts(p);
return 0;
}
char *x()
{
char a[]="a5d4as4f001";
return a;
}
我的想法是将字符型指针函数x()的返回值送给p,再把这个字符串输出,但是结果为什么是乱码呢?但是如果我是一个个的输出却是正确的!
如:
#include<stdio.h>
int main()
{
char *x();
char *p;
p=x();
putchar(*p);//a
putchar(*(p+1));//5
putchar(*(p+2));//d
return 0;
}
char *x()
{
char a[]="a5d4as4f001";
return a;
}
为什么啊?
PS:我使用的编译软件是【Dev C++ 4.9.9.2】
#include<stdio.h>
int main()
{
char *x();
char *p;
p=x();
puts(p);
return 0;
}
char *x()
{
char a[]="a5d4as4f001";
return a;
}
我的想法是将字符型指针函数x()的返回值送给p,再把这个字符串输出,但是结果为什么是乱码呢?但是如果我是一个个的输出却是正确的!
如:
#include<stdio.h>
int main()
{
char *x();
char *p;
p=x();
putchar(*p);//a
putchar(*(p+1));//5
putchar(*(p+2));//d
return 0;
}
char *x()
{
char a[]="a5d4as4f001";
return a;
}
为什么啊?
PS:我使用的编译软件是【Dev C++ 4.9.9.2】