因为在函数a中,b是一个局部变量,其作用范围只在当前函数中有效,当该函数结束时,b数组已经消亡,所以即使你此时返回b的地址,里面的内容也已经不存在了(有些编译器可能会看到b数组的内容仍然存在,但这只是某个编译器的个别行为,C语言标准是不能保证数组内容仍然存在的)。
#include
#include
#include
void a(char * ss);
void main(){
char s1[10];
char *str=s1;
a(str);
printf("%s\r\n",str);
}
void a(char * ss){
char s1[]="abcd";
strcpy(ss, s1);
}
//放在参数中返回