参考:
博文02:https://zhidao.baidu.com/question/389693262.html
一、基本概念
1、传入传出参数指的是函数参数,也可以叫做函数参数的输入输出特性。
2、传出参数:有的地方也叫参数是输出用的,传出参数指通过函数调用(形参)来修改实参的值。
3、传入参数:就是数值的传递。在函数中不会修改这个参数(不会也修改不了实参的值),不会修改调用这个函数的函数的值
4、注意:(1)有些函数参数传入参数又是传出参数
二、示例
4、参考:https://www.cnblogs.com/sanerer/p/9233115.html
传入参数与传出参数
int func(int num1, int *num2)
{
*num2 = 5;
return num1 + *num2;
}
其中,num1为传入参数,num2为传出参数。
传入参数为本身有值,传入函数让函数使用;传出参数本身没值,从函数中带出值(相当于函数的返回值)。
如何实现一个传出参数?
定义一个变量,将这个变量的地址传过去,在函数中实现对这个变量的操作。
函数如何返回多个值?
使用传出参数,可以实现返回多个值。
5、参考:https://bbs.csdn.net/topics/250055241
一种在软件编码的常用规范,用来标明函数参数的输入、输出性质,在C#中有类似关键字in,out,在C中通过宏定义标识:
#define IN /* 输入参数,只读*/
#define OUT /* 输出参数,只写 /
#define INOUT / 输入、输出参数,读写*/
使用例:
int FindMax(IN int iVal1, IN int iVal2, OUT int iResult);
6、在函数中改变传入的参数值:引用参数的使用
来源:https://blog.csdn.net/ltolll/article/details/836361
非引用参数,也叫复制实参
void swap(int v1, int v2) //此函数本意是交换两参数的值
{
int tmp = v2;
v2 = v1; // assigns new value to local copy of the argument
v1 = tmp;
} // 此函数不能达到目标,因为形参只是实参的一个副本,并不是其本身。
引用参数,也叫引用形参
void swap(int &v1, int &v2) //&标明两参数是引用传递
{
int tmp = v2;
v2 = v1;
v1 = tmp;
} // 此函数能达到目标,因为引用形参直接关联到其所绑定的对象。