1、将变量名作为实参和形参:

这时传给形参的是变量的值,传递是单向的。如果在执行函数期间形参的值发生变化,并不传回实参。应为在调用函数时,形参和实参不是同一个存储单元。

2、传递变量的指针:

形参是指针变量,实参是一个变量的地址,调用函数时,形参指向实参变量单元。可以通过形参指针修改实参的值。

3、c++提供了传递变量的引用。

形参是引用变量,和实参是一个变量,调用函数时,形参指向实参变量单元。可以通过形参修改实参的值。
ps:引用就相当于变量的第二个标签。
eg:

#include<iostream>
using namespace std;void swap(int &x,int &y);
int main(){int a=100;int b=200;cout<<"before swap,a:"<<a<<endl;cout<<"before swap,b:"<<b<<endl;swap(a,b);cout<<"after swap,a:"<<a<<endl;cout<<"after swap,b:"<<b<<ednl;return 0;
}void swap(int &x,int &y){int temp;temp=x;x=y;y=temp;
}交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 200
交换后,b 的值: 100

c++增加引用类型,主要是把它作为函数参数,以扩充函数传递数据的功能

c++函数传参:值传递、指针传递、引用传递相关推荐

  1. C++函数传参int a,int *a,int a,const int a的区别

    C++函数传参int a,int &a,const int &a的区别 # 传参方式                  作用 int a 值传递 无法改变a的值 int *a 地址传递 ...

  2. x64汇编第三讲,64位调用约定与函数传参.

    目录 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 二丶x64汇编 2.1汇编详解 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 在x86下我们汇编的传参如下: ...

  3. qt槽函数如何传递多个参数_【Qt】信号和槽对值传递参数和引用传递参数的总结...

    在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象:(测试时,打印传递前后的地址不同) 引用传递不会复制对象:(测试时,打印传递前后的地址相同) 不在同一 ...

  4. 【Qt】信号和槽对值传递参数和引用传递参数的总结

    在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象:(测试时,打印传递前后的地址不同) 引用传递不会复制对象:(测试时,打印传递前后的地址相同) 不在同一 ...

  5. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递

    参考链接: 用Java传递和返回对象 看完绝对清晰~ java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? pdd:所谓java只有按值传递:基本类型  值传递:引用类型,地址值传递,所 ...

  6. 值传递,还是引用传递(实践是检验真理的唯一标准)

    package com.c9;import java.util.ArrayList;//值传递,还是引用传递? /* 1, list,保持一致:有效2,实体bean,保持一致,有效3, string, ...

  7. 递归中的引用传递和常引用传递

    通过递归加深引用传递和常引用传递的区别,同时加深递归回溯的过程 void process(string& str) {if (str.size() >= 5) {cout << ...

  8. C++知识点7——函数传参

    函数传参的原理和对象初始化的原理完全一致,用实参去初始化形参 函数传参的两种形式 1.按值传参 按值传参时,实参的拷贝用来初始化形参. int main(int argc, char const *a ...

  9. 函数传参string_C/C++的三种函数传值方式及其区别

    C/C++函数传参方式我想很多朋友应该都知道,但是不同传参方式的背后他们的区别是什么我想很多人并不那么清楚.本文就给大家揭露一下各传参方式的区别. 传参方式有这三种:值传递.引用传递.指针传递 大家可 ...

最新文章

  1. vue vuex 挂载_Vue $mount()手动挂载
  2. 原创 | 人工智能的人文主义,如何让AI更有爱
  3. 数据挖掘学习笔记之人工神经网络(一)
  4. Python基础教程:线程操作(oncurrent模块)详解
  5. SpringBoot高级-缓存-RedisTemplate序列化机制
  6. 第一类修正贝塞尔函数的C语言实现
  7. c++基础学习(03)--(存储类,运算符,循环,判断)
  8. 创造型模式——工厂模式
  9. 口红会染唇是什么意思_会涂口红和不会涂口红的女生,区别这么大?!
  10. 2020 年百度之星·程序设计大赛 - 复赛 1002 Binary Addition
  11. Windows11下Edge浏览器登录工行农行并使用K宝U盾
  12. python公约数公倍数_python求最大公约数和最小公倍数的简单方法
  13. java rsa x509_Java使用RSA加密解密签名及校验
  14. 最强大脑记忆曲线(7)——“复习页面”逻辑实现
  15. 帷幕的帷是什么意思_古时纺织什么样子?穿越时空看古代纺织发展
  16. 【读书笔记】《解忧程序员》读后感
  17. 《VC++深入详解》第三章
  18. Anaconda3-5.2.0+PyTorch1.3.0+cuda9.2本地安装教程
  19. 天池O2O优惠券使用预测
  20. 信道估计算法误码率仿真,对比不同导频长度,对比不同信道估计算法包括CS-OMP,LS,MMSE

热门文章

  1. shell编程入门 linux解释器原理,Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对.doc...
  2. Shell else if mysql_Shell if else语句(详解版)
  3. docker 多个mysql_mysql8.0 利用docker容器安装配置多主多从集群
  4. 文本”Hello, world.”显示的颜色是?
  5. uni-app运行编译报错
  6. ajax提交手机号去数据库验证并返回状态值
  7. js,jq.事件代理(事件委托)复习。
  8. HTML5 audio 如何实现播放多个MP3音频
  9. 2018.3.30 边框应用与导航栏设置
  10. 小程序左右标签滑块排行榜