55 返回指针的函数

1,C语言允许函数的返回值是一个指针(地址),这样的函数称为指针函数

2,请编写一个函数 strlong(),返回两个字符串中较长的一个

  

   

 3,指针函数细节

  ①用指针作为函数的返回值时候需要注意,函数运行结束后,会销毁在它内部定义的所欲局部数据,包括局部变量,局部数组和形式参数,函数返回的指针不能指向这些数据

    

     fun返回是,n已经销毁,所以*p指向的是内存的垃圾值,而不是100

  ②函数运行结束后会销毁该函数所有的局部数据,这里所谓的销毁并不是将局部数据所占用的内存全部清0,而是程序放弃对它的使用权限,后面的代码可以使用这块内存

    

     ok可以打印出来,因为printf("ok"),这一行代码可能使用到了销毁的局部变量 n=100 的内存空间

  ③C语言不支持在调用函数时返回局部变量的地址,如果确实有这样的需求,需要定义局部变量为 static 变量

    

       p正确指向 200,这是因为 200 是 static 性质的,它的存储空间在静态存储区,fun 返回后并不会影响它,它不会被销毁

4,编写一个函数,它会生成10个随机数,并使用表示指针的数组名(即第一个数组元素的地址)来返回它们

  

   

  

  

原文地址:https://www.cnblogs.com/shanlu0000/p/12361825.html