指针函数的返回值要求

来源:互联网 发布:留学回国证明 知乎 编辑:程序博客网 时间:2024/06/05 23:43

指针函数的返回值要求

 

指针函数,“函数”是核心,“指针”是修饰,表示返回值是指针的函数,总体上是一个函数。

char * fun()

{

       static char *s

       ……

       return s

}

 

并不是任何一个指针都可以返回,要求:

 

A.      全局变量

B.      字符串常量

C.      静态变量(用static修饰)

D.      动态内存malloc分配的内存

 

如:

char * fun()

{

       char *s = “abc”;

       ……

       return s;

}

合法,其中字符串“abc”是字符串常量,存储在静态区,地址固定,s存放在栈上,存放的是“abc”的地址。“abc”在fun函数执行完毕后仍然存在,地址不变。当main函数执行完毕后才释放。

 

char *fun()

{

       static char  s[] = “abc”;

       ……

       return s;

}

合法。数组s存放在静态区,fun执行完毕后仍然有效。