



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言中的二级指针(双指针) 原创作品,转载请标明出处/yming0221/article/details/7220688 二级指针又叫双指针。C语言中不存在引用,所以当你试图改变一个指针的值的时候必须使用二级指针。C+中可以使用引用类型来实现。下面讲解C中的二级指针的使用方法。例如我们使用指针来交换两个整型变量的值。错误代码如下:一级指针cpp view plaincopyprint?1. #include 2. 3. voidswap(int*a,int*b)4. 5. int*tmp=NULL;6. tmp=a;7. a=b;8. b=tmp;9. 10. 11. intmain(intargc,int*argv)12. 13. inta=2;14. intb=3;15. printf(Beforeswapa=%db=%dn,a,b);16. swap(&a,&b);17. printf(Afterswapa=%db=%dn,a,b);18. return0;19. 输出的结构如下: 结果分析:不论是数值还是指针,swap函数中的参数传递的是总是值,所以在上述函数中即使a和b的地址已参数传递给swap函数,而在函数内交换的是a和b的值(main函数中a的地址和b的地址),而交换完毕,函数相应的参数从栈中弹出,并不能返回给调用函数,所以该swap函数中的操作是徒劳。这里完全可以直接交换a和b的值,不过如果a和b不是一个32位的整型变量,而是一个复杂的数据结构,这样做会降低效率。如下;cpp view plaincopyprint?1. voidswap(TYPE*a,TYPE*b)2. 3. TYPEtmp;4. tmp=*a;5. *a=*b;6. *b=tmp;7. 二级指针下面是使用二级指针分配内存的例子cpp view plaincopyprint?1. #include 2. #include 3. #include 4. voidmemorylocate(char*ptr)5. 6. *ptr=(char*)malloc(10*sizeof(char);7. 8. intmain(intargc,int*argv)9. 10. char*buffer;11. memorylocate(&buffer);12. strcpy(buffer,12345);13. printf(buffer%sn,buffer);14. return0;15. 总结:1、当操作二维数组时传递参数2、当想改变指针的值的时候不妨考虑使用二维指针。博主,你确定二级指针是这样用吗,你确定你不是在误导人吗?swap函数的形参是二级指针,但是你传实参的时候明显是个一级指针啊,这样编译都会有警告(我是mingwin gcc 默认编译)。正确的应该是这样#include void swap(int *a, int *b)int tmp;printf(swap(): a=%#x, b=%#xn, a, b);printf(swap(): &a=%#x, &b=%#xn, &a, &b);tmp = *a;*a = *b;*b = tmp;int main()int a = 2;int b = 3;printf(main(): &a=%#x, &b=%#xn, &a, &b);swap(&a, &b);printf(main(): after swap a=%d,b=%dn, a, b);return 0;输出结果:main(): &a=0x22ff4c, &b=0x22ff48swap(): a=0x22ff4c, b=0x22ff48swap(): &a=0x22ff30, &b=0x22ff34main(): after swap a=3,b=2看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州贵阳白云城市运营维护投资(集团)股份公司招聘5人笔试历年参考题库附带答案详解
- 2025西安锦天物业管理服务有限公司招聘笔试历年参考题库附带答案详解
- 2025菜鸟集团校园招聘笔试历年参考题库附带答案详解
- 2025年4月四川乐山昶康心血管病医院招聘医护人员12人模拟试卷附答案详解(模拟题)
- 2025福建省国银保安服务有限公司招聘办公室文员教官笔试历年参考题库附带答案详解
- 2025湖北荆州市荆发控股集团有限公司社会招聘综合及考察笔试历年参考题库附带答案详解
- 2025内蒙古鄂尔多斯市康巴什区乐充新能源有限责任公司招聘笔试历年参考题库附带答案详解
- 2025中国有色集团沈阳矿业投资有限公司招聘笔试历年参考题库附带答案详解
- 2025江苏无锡职业技术学院招聘专职辅导员4人模拟试卷及完整答案详解一套
- 2025年4月重庆永川区五间镇招聘公益性岗位人员1人模拟试卷及答案详解(典优)
- (2025年)国家能源集团笔试试题(含答案)
- 直肠癌NCCN指南解读
- 学校教师请假管理办法(2025修订版)
- 2025秋七年级语文上册第1单元第4课古代诗歌四首教材习题课件新人教版
- 镁合金课件教学课件
- 2025年动漫艺术概论试题及答案
- 知道智慧树实验室安全与防护满分测试答案
- 成都市辅警真题2024
- 工会经审业务网络知识竞赛题库
- 教学课件文案模板范文
- 要素式强制执行申请书(申请执行用)
评论
0/150
提交评论