利用指针的指针,修改被调函数的局部值【传引用】
2015-10-28 17:14
369 查看
说明:利用指针的指针可以允许被调用函数修改局部指针变量和处理指针数组。
传引用,可修改被调函数局部值。
传值,不可修改被调函数局部值。
看代码:
//调用方法一:传引用(可以修改外部变量)
//调用方法二:传值(未能修改外部变量)
传引用,可修改被调函数局部值。
传值,不可修改被调函数局部值。
看代码:
//调用方法一:传引用(可以修改外部变量)
#include<iostream> using namespace std; //函数功能:找第一个负值 //方法一: void FindCredit(int **fpp){ while (**fpp != 0){ if (**fpp < 0) break; else (*fpp)++; } printf("内部:%d\n", **fpp); } //方法二: void FindCredit(int *fp){ while (*fp != 0) { if (*fp < 0) break; else (fp)++; } printf("内部:%d\n", *fp); } void main(){ int vals[] = { 7, 6, 5, -4, 3, 2, 1, 0 }; int *fp = vals; FindCredit(&fp); //调用方法一 //FindCredit(fp); //调用方法二 printf("外部:%d\n",*fp); //cout << *fp << endl; //指向第一个地址 //cout << *(fp+3) << endl; //指向第四个地址 system("PAUSE"); }运行结果:
//调用方法二:传值(未能修改外部变量)
#include<iostream> using namespace std; //函数功能:找第一个负值 //方法一: void FindCredit(int **fpp){ while (**fpp != 0){ if (**fpp < 0) break; else (*fpp)++; } } //方法二: void FindCredit(int *fp){ while (*fp != 0) { if (*fp < 0) break; else (fp)++; } printf("内部:%d\n", *fp); } void main(){ int vals[] = { 7, 6, 5, -4, 3, 2, 1, 0 }; int *fp = vals; //FindCredit(&fp); //调用方法一 FindCredit(fp); //调用方法二 printf("外部:%d\n",*fp); //cout << *fp << endl; //指向第一个地址 //cout << *(fp+3) << endl; //指向第四个地址 system("PAUSE"); }运行结果:
相关文章推荐
- ORACLE备份恢复杂谈记录
- [Unity3D学习] Unity代码热更新 源码下载
- 物联网探秘:那些来自传感器的数据都是如何上传至云端的?
- Java:IO流之字符流Reader、Writer详解
- JSON与XML的区别比较
- HTML5,CSS3 与 Javascript 制作视频播放器
- soj 3531 Number Pyramids(观察组合数 + 每种物品至少选一个的完全背包)
- PHP中上传多张图片
- centos6.7系统rpm安装Nginx+PHP+MYSQL
- 阿里云远超 Spark,取得四个全球排序基准竞赛冠军!
- SQL数据库基本操作语句
- Spring MVC 中的 forward 和 redirect
- java Vamei快速教程18 容器
- linux基础学习8
- 如何禁止类的拷贝构造函数和复制构造函数
- CocoaPods安装步骤(已有Ruby环境):
- Android实战技巧之四十二:加速度传感器
- java-How to delay few seconds
- enum枚举类
- Unity3d + UGUI 的多分辨率适配