故名思意,就是返回指针的函数。

  1. int *func() //定义一个返回指针的函数
  2. {
  3. static int n = 10;//存储在静态存储区中,并不会随着函数执行完毕后回收。
  4. return &n;
  5. }
  6. void main()
  7. {
  8. int *p = func();
  9. int i;
  10. i = *p;
  11. printf("%p\n", func());
  12. printf("%d\n", i);
  13. getchar();
  14. }

注意:

在旧版本的C语言中,对于指针函数运行结束后会销毁函数的局部数据,这里的销毁并不是将局部数据所占用的空间清零,
而是该程序放弃对它的权限,后面的代码可能还是可以访问到的(前提是再此之前没有对内存进行操作)。
在新版本中,直接访问会报错。
如果变量前面加了static关键字 则该变量会存储在全局区/静态存储区中