26 函数形参值回传问题——C++解决多个return的一般方法
0 引言
在使用数组和vector作为函数的参数进行参数传递并希望得到值的回传时,由于不知道怎么写数组函数形参的引用形式,一直采用vector的引用形式。但是,刚刚测试了一下,发现数组作为参数本身就是指针,根本不需要采用引用形式把值回传啊,把测试结果写下来。
1 关于数组作为函数参数的值传递问题——数组和容器的对比
数组直接作为形参进行传递,容器(以vector为例)以引用形式作为形参
1. 函数代码
void arrayTest(double myarray[]){
for(int i=; i<; ++i){
myarray[i] = i+;
}
}
void vectorTest(vector<int>& myVector){
for(int i=; i<; ++i){
myVector[i] = i+;
}
}
2. 测试代码
void arrayAndVectorTest(){
double myarray[] = {,,};
arrayTest(myarray);
cout << "array test" <<endl;
for(int i=; i<;i++){
cout << "第" << i << "个数 = " << myarray[i] << endl;
}
vector<int> myVector{,,};
vectorTest(myVector);
cout << "vector test" <<endl;
for(auto it = myVector.begin(); it != myVector.end(); ++ it)
cout << "第" << it -myVector.begin() + << "个数 = " << *it << endl;
}
3. 测试结果如下

两种方法均实现了值的回传.
4. 数组直接作为形参进行传递,容器(以vector为例)以引用形式作为形参
void vectorTest(vector<int> myVector){
for(int i=; i<; ++i){
myVector[i] = i+;
}
}

此时,数组实现了值回传,但是容器没有实现值回传。
26 函数形参值回传问题——C++解决多个return的一般方法的更多相关文章
- 为什么C++函数形参默认值从最末一个赋值?
[1]函数调用时形参的压栈顺序 1.示例代码如下(VS2010): #include <iostream> using namespace std; ); void fun(int a, ...
- c++之带默认形参值的函数
先来个例子: #include <iostream> using namespace std; ,){ return x+y; } int main(){ //freopen(" ...
- day_12函数默认值,数据类型的补充,函数对象名称空间与作用域,函数的嵌套定义
复习, 昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较 函数的参数,‘ 实参与形参 形参:在函数定义时()中出现的参数 实参,在函数调用时()中出现的参数 实参的 ...
- JS高级. 06 缓存、分析解决递归斐波那契数列、jQuery缓存、沙箱、函数的四种调用方式、call和apply修改函数调用方法
缓存 cache 作用就是将一些常用的数据存储起来 提升性能 cdn //-----------------分析解决递归斐波那契数列<script> //定义一个缓存数组,存储已经计算出来 ...
- Python 函数返回值、作用域
函数返回值 多条return语句: def guess(x): if x > 3: return "> 3" else: return "<= 3&qu ...
- 【Go入门教程3】流程(if、goto、for、switch)和函数(多个返回值、变参、传值与传指针、defer、函数作为值/类型、Panic和Recover、main函数和init函数、import)
这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和 ...
- C++ const修饰函数、函数参数、函数返回值
const修饰函数 在类中将成员函数修饰为const表明在该函数体内,不能修改对象的数据成员而且不能调用非const函数.为什么不能调用非const函数?因为非const函数可能修改数据成员,cons ...
- 关于QT中evaluateJavaScript()函数返回值的处理问题
关于QT中evaluateJavaScript()函数返回值的处理问题 - 寒风问雪的专栏 - 博客频道 - CSDN.NET 关于QT中evaluateJavaScript()函数返回值的处理问题 ...
- Linux Shell 函数返回值
Shell函数返回值,常用的两种方式:return,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回. 示例: #!/bin/sh fu ...
随机推荐
- Java中的API
待施工 111 API: Scanner Random String StringBuilder ArrayList 集合详解: 包 import java.util.ArrayList 构造方法pu ...
- html中设置一个div可编辑文本
<div contenteditable="true"></div> <!-- outline: none;设置获取焦点没有高亮边框 -->
- 设计不严谨 - Get参数传日期空格未转义字符出现截断请求,后端无法处理
设计不严谨 Get参数传递日期的时候有空格,如果未转义的话,会截断请求,然后后端无法处理. 从业务场景看 从产品的角度看,产品想要看每个活动的效果,而不是想知道技术. 角度不同,视觉不同 mark
- python 爬取拉勾网
import requestsimport randomimport timeimport osimport csvimport pandas as pdreq_url = 'https://www. ...
- Unity HOME
{ https://unity.com/cn?_ga=2.134655153.1528856053.1574826116-818341090.1574826116 }
- 屏幕尺寸,分辨率,PPI,像素之间的关系
什么是屏幕尺寸? 华为荣耀7的尺寸是5.2英寸.这个5.2英寸是手机屏幕对角线的长度. 1英寸(inch)=2.54厘米(cm) 什么是分辨率? 华为荣耀7的分辨率是1920PX*1080PX.像素是 ...
- Delphi实现提取可执行文件内部所有图标
本实例实现的功能是能够从用户选择的可执行文件(后缀名为exe)中提取所有图标并且显示在窗体上. 在窗体中添加TImage 组件.TOpenDialog组件和TButton组件,TImage组件充当显示 ...
- App应用推广
Android应用推广渠道: 360手机助手: http://dev.360.cn/ 应用宝: http://open.qq.com/ 百度手机助手: http://shouji.baidu.com/ ...
- atlcomcli.h(1756): error C2338: CVarTypeInfo< char > cannot be compiled with /J or _CHAR_UNSIGNED fl
我拿到一个VS的工程,用VS2010 编译 时提示: atlcomcli.h(1756): error C2338: CVarTypeInfo< char > cannot be comp ...
- FastJson乱序问题
1.初始化为有序json对象 JSONObject jsonOrdered= new JSONObject(true); 2.将String对象转换过程中,不要调整顺序 JSONObject json ...