函数以数组为返回值

#include <stdio.h>

char *func()
{
    static char a[] = "hello world";
    return a;
}

int main()
{
    printf("%s\n", func());
	return 0;	
}

由下图可知,当字符串数组a定义成静态的时候,它的生命周期与程序的生命周期一样。
若不定义成 static 型,则数组 a 在调用完func函数后被释放掉了,无法作为返回值。
函数以数组为返回值