利用指针的指针,修改被调函数的局部值【传引用】
说明:利用指针的指针可以允许被调用函数修改局部指针变量和处理指针数组。
传引用,可修改被调函数局部值。
传值,不可修改被调函数局部值。
看代码:
//调用方法一:传引用(可以修改外部变量)
#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");
}
运行结果:
利用指针的指针,修改被调函数的局部值【传引用】相关推荐
- GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法
工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...
- c语言change函数用法,通过值和引用函数
C语言 的 通过值和引用函数 . 将参数值或数据传递给C语言函数有两种方法:通过值调用和通过引用调用.原始值在通过值调用时不修改,但通过引用调用时,在函数中可进行修改. 下面将分别讲解如何通过值调用和 ...
- 【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
传值调用最显著的特征就是被调用的函数内部对形参的修改不影响实参的值. 引用调用是将实参的地址传递给形参,使得形参的地址就是实参的地址. (对于python而言,普通的实参传个变量(或常量)进去就相当于 ...
- C++_引用做函数的返回值_引用的本质---C++语言工作笔记032
然后我们再去看,要注意不要反悔局部变量的引用什么意思? 比如这里我有个方法,test01,他返回了一个int a =10; 这个变量的引用,而a这个变量是个局部变量. 这个时候我们去用一个引用,接收这 ...
- python函数没有修改列表_Python:通过引用创建一个修改列表的函数不是值
Python以相同的方式传递所有内容,但是通过"通过值"或"通过引用"来调用它不会清除所有内容,因为Python的语义与通常应用的语言不同.如果我要描述它,我会 ...
- php函数间参数传递(值传递/引用传递)
为什么80%的码农都做不了架构师?>>> 函数间的参数传递包括值传递和引用传递. php:函数间的参数传递 1.值传递 复制代码代码如下: <?php function ...
- java的函数传值_java 函数形参传值和传引用的区别[转]
java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清. (一)基本数据类型:传值,方法不会改变实参的值. publicclassTestFun { publicstaticvoidt ...
- C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)
每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...
- 【C语言】函数参数试探:传指针与传引用——以队列为例
首先,实现一个简单的队列: #define Maxsize 100 #define ElemType int//队列 typedef struct Queue{ElemType data[Maxsiz ...
最新文章
- 今天 CSDN 编辑器的一个惊人的变化
- html选择和按钮间距,html - 想要在按钮之间添加间距
- python列表元素移动_Python列表元素分组
- IntelliJ IDEA 2019.3发布,饱受性能诟病的2019.2版本终于成为过去式
- containerd镜像导入import和push命令 gzip压缩解压缩命令
- Cadence 电源完整性仿真实践(二)
- CentOS 7系统上部署Apache+PHP+MariaDB+xcache使用rpm,php module
- 自己动手清除电脑中的***程序
- ftp ---- 文件结构(配置简单整理)
- 零基础怎么学计算机编程!看完的你,应该会恍然大悟!
- 联想Thinkpad T580 20L9 20LA Wistron LTS-2 17812-1笔记本点位图
- 九阵His系统总体介绍
- C# 如何添加PPT背景(纯色背景、渐变色背景、图片背景)
- java tracert_tracert-命令小结
- 文档翻译——免费版(word格式、pdf格式)
- 主成成分分析(Principal Component Analysis)
- 2022年6月护肤行业数据洞察报告(小红书)
- cookie是什么?有什么用?
- 私有云服务器搭建教程(保姆级)——台式电脑+ubuntu+docker+nextcloud+mysql+花生壳内网穿透
- LiveUpdate Adminstrator配置手册