#include <stdio.h>
char *func()
{
static char a[] = "hello world";
return a;
}
int main()
{
printf("%s\n", func());
return 0;
}
由下图可知,当字符串数组a定义成静态的时候,它的生命周期与程序的生命周期一样。
若不定义成 static 型,则数组 a 在调用完func函数后被释放掉了,无法作为返回值。
#include <stdio.h>
char *func()
{
static char a[] = "hello world";
return a;
}
int main()
{
printf("%s\n", func());
return 0;
}
由下图可知,当字符串数组a定义成静态的时候,它的生命周期与程序的生命周期一样。
若不定义成 static 型,则数组 a 在调用完func函数后被释放掉了,无法作为返回值。