c++中三种参数引用方式
传值调用 
是默认的参数传递机制,实参会复制给形参,调用的语义是每次取得实参的副本并将该复本用作形参,即会有复本的开销,并且不改变实参的值。 适用于:传值调用用于不应该被函数改变的小型对象。 
例子:void demo1(int a ,int b);
引用调用 
省去了副本的开销,但会改变实参的值。适用于:引用调用用于可能会被函数改变的对象。 
例子:void demo2(int & a,int &b);
常数引用调用 
为了取得和传值调用一样的效果,即不改变实参的值,使用这种调用形式。它消除了副本的开销,同时不改变实参。 适用于:常量引用调用用于不应该被函数改变的大型对象。 
例子:void demo3(const vector &a ,const vector &b );
#include <iostream>
#include <vector>
using namespace std;
//如果在main之后的定义成员函数,则在main之前先声明
void demo1(int a, int b);
void demo2(int &a, int &b);
void demo3(const vector<int> &a, vector<int> &b);
int main(){
    int c = 3,d = 4;
    demo1(c, d);
    cout << "demo1后输出" << c << d << endl; //demo1后输出并发现值未变
    int &a = c;
    int &b = d;
    demo2(a, b);
    cout << "demo2后输出" << a << b << endl;
    // vector的定义和初始化
    vector<int> e;
    e.reserve(10);
    for(int i = 0; i < 10; i++)
    {
        e.push_back(i);
    }
    vector<int> f;
    for( int j = 0; j < 10; j++ )
    {
        f.push_back(j);
    }
    const vector<int> &v1 = e;  //常数引用,不可修改
    vector<int> &v2 = f;   //普通引用,可以修改
    demo3(v1, v2);
    cout << "demo3后输出" << v1[0] << v2[0] << endl;
}
void demo1(int a, int b){
    a = a+1;
    b = b+1;
    cout << "demo1中输出" << a << b << endl;
}
void demo2(int &a, int &b){
    a = a+1;
    b = b+1;
    cout << "demo2中输出" << a << b << endl;
}
void demo3(const vector<int> &a, vector<int> &b){
    cout<<a[6]<<endl;
    b[0] = a[6];
    cout << "demo3中输出" << a[0] << b[0] << endl;
}												
											c++中三种参数引用方式的更多相关文章
- 深入浅出spring IOC中三种依赖注入方式
		
深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和 ...
 - 【转】Spring 中三种Bean配置方式比较
		
今天被问到Spring中Bean的配置方式,很尴尬,只想到了基于XML的配置方式,其他的一时想不起来了,看来Spring的内容还没有完全梳理清楚,见到一篇不错的文章,就先转过来了. 以前Java框架基 ...
 - JS中三种字符串连接方式及其性能比较
		
工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法 用连接符“+”把要连接的字符串连起来 ...
 - 【SSH系列】深入浅出spring IOC中三种依赖注入方式
		
spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...
 - spring IOC中三种依赖注入方式
		
Spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则,用来消减计算机程序之间的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入 ...
 - Spring 中三种Bean配置方式比较
		
今天被问到Spring中Bean的配置方式,很尴尬,只想到了基于XML的配置方式,其他的一时想不起来了,看来Spring的内容还没有完全梳理清楚,见到一篇不错的文章,就先转过来了. 以前Java框架基 ...
 - vmware中三种网络连接方式
		
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note vmw ...
 - vmware中三种网络连接方式(复制)
		
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...
 - JavaScript中三种字符串连接方式及其性能比较
		
参考地址: https://www.cnblogs.com/programs/p/5554742.html 工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方 ...
 
随机推荐
- python开发学习-day02(元组、字符串、列表、字典深入)
			
s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
 - react + redux 实现幻灯片
			
写在前面: 这一篇是我 使用scss + react + webpack + es6实现幻灯片 的进阶篇,效果请点我,将会使用上redux的基础用法,因为一开始没有理解好redux的用法,单纯看文档, ...
 - Robot FrameWork测试案例
			
Robot FrameWork是一个自动测试框架,可到官网查看详细介绍. 安装 Robot Framework 本文中的Robot framework安装在Win7 (32 bit) 平台上. 接下来 ...
 - logstash通过redis收集日志
			
(1)部署redis 1丶安装redis yum install epel-release -y yum install redis -y 2丶修改配置文件 #vim /etc/redis.conf ...
 - 给你一个 5L 和 3L 桶,水无限多,怎么到出 4L。
			
智力题 给你一个 5L 和 3L 桶,水无限多,怎么到出 4L. 思考过程 先将 3L 的桶装满水,倒入 5L 的桶里. 再重新将 3L 的桶装满水,倒入 5L 的桶里,把 5 L 的桶装满后,这样 ...
 - 【C#】编码史记
			
计算机中的字是如何处理的? 如果你用放大镜看一下,可以看出屏幕上的字是由一个一个的像素点组成的,每一个字符用一组像素点拼接出来,这些像素点组成一幅图像,变成了我们的文字,计算机又是如何将我们的文字保存 ...
 - Android之 内容提供器(2)——创建自己的内容提供器将数据共享出去
			
创建自己的内容提供器非常简单,只需要新建一个类继承ContentProvider类,通过实现ContentProvider的增删改查的方法向内容提供器中增删数据. 1 ContentProvider简 ...
 - 关于 Unity 版本升级后可能会引起偶发光照图错乱的问题
			
近期项目遇到一个奇怪的问题,使用 Unity 2017 版本升级后,团队中某些人的机器光照图总是不正确,而有的人是正确的,一直不知道为什么. 为了查到这个奇怪问题的原因,首先查看了美术的在 Max 中 ...
 - java.lang.TypeNotPresentException: Type org.eclipse.jetty.maven.plugin.JettyRunMojo not present的原因
			
原因 :我的JDK版本不支持当前Jetty版本. 解决:将jetty版本换成较低版本的就可以,这个是我之前的我的jdk是1.7.7的 <groupId>org.eclipse.jetty& ...
 - aop相关术语
			
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面的编程.并不是全部的AOP框架都是一样的.他们连接点模型的功能可能有强弱之分,有些可以字段,方法,构 ...