char *fun() { char* p = "hello world"; return p+6; } void main() { printf("%s",fun()); } world char* p = "hello world";分配的是常量内存区,如果换成char a[]="hello world",因为a指的是栈上的存储区,申请的内存在函数结束的时候就会被回收,因此是不能返回的