经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C++ » 查看文章
c++指针类型的函数
来源:cnblogs  作者:流星斩月  时间:2021/3/1 9:35:48  对本文有异议

  下面随笔将讲述c++指针类型的函数。

  原创链接:https://www.cnblogs.com/iFrank/p/14444379.html

指针类型的函数

  若函数的返回值是指针,该函数就是指针类型的函数。

   指针函数的定义形式

  1.   存储类型  数据类型  *函数名() 
  2.   { //函数体语句
  3.   }

批注 2020-03-04 221235.png

  1. 1 错误的例子
  2. 2
  3. 3 int main(){
  4. 4 int* function();
  5. 5 int* ptr= function();
  6. 6 *prt=5; //危险的访问!
  7. 7 return 0;
  8. 8 }
  9. 9 int* function(){
  10. 10 int local=0; //非静态局部变量作用域和寿命都仅限于本函数体内
  11. 11 return &local;
  12. 12 }//函数运行结束时,变量local被释
  1. 1 正确的例子1
  2. 2
  3. 3 #include
  4. 4 using namespace std;
  5. 5 int main(){
  6. 6 int array[10]; //主函数中定义的数组
  7. 7 int* search(int* a, int num);
  8. 8 for(int i=0; i<10; i++)
  9. 9 cin>>array[i];
  10. 10 int* zeroptr= search(array, 10); //将主函数中数组的首地址传给子函数
  11. 11 return 0;
  12. 12 }
  13. 13 int* search(int* a, int num){ //指针a指向主函数中定义的数组
  14. 14 for(int i=0; i<num; i++)
  15. 15 if(a[i]==0)
  16. 16 return &a[i]; //返回的地址指向的元素是在主函数中定义的
  17. 17 }//函数运行结束时,a[i]的地址仍有
  1. 1 正确的例子2
  2. 2
  3. 3 #includeusing namespace std;
  4. 4 int main(){
  5. 5 int* newintvar();
  6. 6 int* intptr= newintvar();
  7. 7 *intptr=5; //访问的是合法有效的地址
  8. 8 delete intptr; //如果忘记在这里释放,会造成内存泄漏
  9. 9 return 0;
  10. 10 }
  11. 11 int* newintvar (){
  12. 12 int* p=new int();
  13. 13 return p; //返回的地址指向的是动态分配的空间
  14. 14 }//函数运行结束时,p中的地址仍有效
  15. 15

 

 

原文链接:http://www.cnblogs.com/iFrank/p/14444379.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号