char str[]="hello" 与 char *str="hello" 不是一回事
char str[]="hello" 分配在栈上,生命周期随着函数执行完而被回收
char *str="hello"分配在堆上,直至整个程序结束才进行回收
#include<stdio.h>
char * print()
{
char *str = "Hello, World!";//true
//flase 函数调用完毕之后,释放字符数组
//char str[] = "Hello, world!";
return str;
}
int main(int argc, char **argv)
{
printf("%s\n",print());
return 0;
}