C++中传递参数

C++ 函数参数传递时,值传递、引用传递、指针传递有什么区别? C++ 中,函数参数传递方式包括指针传递、引用传递和值传递,它们各自有不同的特点和应用场景 阅读详情

 C++中传递参数的方式有三种:

参数的值,称为值传递,简称传值;

参数的地址,称为地址传递,简称为传址;

引用传递,简称为传引用。

相应的函数也就是传值调用,传址调用和传引用调用
“值传递”:形参实际上是实参的一份拷贝,所以func1传递时不会改变外部变量实参的值,所以n的值仍成为100。

“指针传递”:由于func2函数体内的x是指向外部变量n的指针,改变该指针的内容将导致n的值改变,所以n的值成为200。

“引用传递”:由于func3函数体内的x是外部变量n的引用,x和n是同一个东西,改变x等于改变n,所以n的值成为200。


#include <stdio.h>
#include <iostream> 

using namespace std;

void func1(int x);
void func2(int *x);
void func3(int &x);

void main(){
	int num = 100;
	cout << num << endl;
	func1( num );
	cout << num << endl<< endl;

	num = 100;
	func2( &num );
	cout << num << endl<< endl;

	num = 100;
	int &num_yy = num;
	func3( num_yy );
	cout << num << endl;

	return ;
}

void func1(int x){
	x = x + 100;
}
void func2(int *x){
	*x = *x + 100;
}
void func3(int &x){
	x = x + 100;
}


输出:

100

100

 

200

 

200

 

c++ 函数参数传递 c++ 函数参数传递(值传递、引用传递、指针传递) 阅读详情

相关推荐

【WRF理论第十四期】 VEGPARM.TBL 文件详解

WRF 读取 VEGPARM.TBL 文件

WW、forever的博客 525

c++中的函数动态参数设置

首先引用“cstdarg”头文件

qq_57237399的博客 1095

反应动力学仿真软件:Kintecus_(4).用户界面及操作指南

在 Kintecus 中,反应方程的定义非常灵活。您可以定义简单的一阶反应、复杂的多步反应以及不同类型的反应机制。

kkchenjj的博客 1148

c++动态生成数组大小_一文读懂C语言与C++动态内存

来自公众号:C语言与cpp编程程序在编译、运行等各个过程中,不同性质的数据存放在不同的位置。动态内存是从堆上分配,也叫动态内存分配。程序员自己负责在何时释放内存。动态内存的生存期由程序员决定,使用非常灵活。C、C++程序编译的内存分配1.从静态存储区域分配内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量static变量等。2.在...

weixin_39825045的博客 361

C++反射机制:可变参数模板实现C++反射

概要 本文描述一个通过C++可变参数模板实现C++反射机制的方法。该方法非常实用,在Nebula高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能。 C++11的新特性–可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。关于可变参数模板的原理和应用不是本文重点,不过通过本文中的例子也...

weixin_45032957的博客 558

Spring AOP趣谈

##1、什么是AOP AOP(Aspect-Oriented Programming), 即 面向切面编程, 它与OOP( Object-Oriented Programming, 面向对象编程) 相辅相成, 提供了与 OOP 不同的抽象软件结构的视角。 在 OOP 中, 我们以类(class)作为我们的基本单元, 而 AOP 中的基本单元是 Aspect(切面)。 ##2、AOP的基本概念 Aspect(切面):通常是一个类,里面可以定义切入点和通知 JointPoint(连接点):程序执行过程中

weixin_46822085的博客 320

ROS c++ 编写动态调参(dynamic reconfigure)客户端,导航参数程序动态调节,以dwa_local_planner为例

在室内服务机器人的导航中,大多数不需要过低的目标点位姿容差,只在一些特殊点位需要低位姿容差比如充电站。对此dwa局部路径规划器中的xy_goal_tolerance、yaw_goal_tolerance在平常的巡航中可以相对较高,的巡航中可以相对较高,当机器人判断需要回充电站时,在程序中调节对应的参数,不需要人为的在rqt_reconfigure工具中调节。

SRAI的博客 2345

C++ 参数的三种传递

C++ 参数的三种传递 开发工具与关键技术:C++、VisualStudio 作者:何任贤 撰写时间:2019年04月10日 这三种传递分别是值传递、指针传递和引用传递。值传递是我们常见的传递方式,不管是在C#还是JAVA,都是有值传递的,C++也不例外,那么指针和引用则和值传递不同,不同之处呢,则是它们传递东西不同,都是都可以把一个值传给某个函数使用,它们不同之处我们通过一些例子来说明。 例...

qq_41973378的博客 2万+

cpp 线程传递参数

目录 给thread传递参数的 多种情况: 传递字面值 传递字符数组当字符串, 为了安全还是转换成 string 更好. 向线程传递一个引用, 注意需要使用 ref 函数 thread 传递函数对象,需要注意,如果在 thread 构造参数里面构造对象,需要用"()"包起来 ...

weixin_34217773的博客 1401

C++函数参数传递

C++函数参数传递 学编程肯定会学到函数,函数里面还会设置一些参数,帮助我们解决一些繁琐的问题。参数是调用函数与被调用函数之间交换的通道,函数定义的首部的参数称为形式参数(简称形参),调用函数时使用的参数称为实际参数(简称实参)。

m0_52958077的博客 1万+

cpp函数参数传递

参数是调用函数与被调用函数之间交 换数据的通道,函数定义首部的参数称为形参,调用函数时使用的参数称为实参。实参形参一一对应。 cpp语言有三种参数传递机制:值传递,指针传递和引用传递。 1.值传递:实参的值被复制到对应的形参所标识的对象中去,成为形参的初始值,函数中语句对形参的操作与实参对象无关。 #include using namespace std; void swap(int a

回头浪子的博客 2746

C++函数参数传递

在C程序和过去的C++程序中常常使用这种方法。

2301_80224556的博客 2638

C++函数参数传递详解

快速了解函数参数传递

qq_64281750的博客 4960

C/C++ 数组作为参数传递 指针 引用——VS——普通值传递、指针传递、引用传递

文章目录1 C++传递、指针传递、引用传递详解值传递:指针传递:引用传递:2 数组作为函数的形参2.1 一维数组传递2.2 二维数组传递总结 1 C++传递、指针传递、引用传递详解 值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。 指针传递: 形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作

zou_albert的博客 2万+

c中的动态参数

#include #include double add_values(char *str, ...) {     va_list marker;         double result = 0.0;     va_start(marker, str);  // mark first additional argument     while (*str)

diligentcat的专栏 1297

SQL 拼接语句输出_一文了解Mybatis中动态SQL的实现

一、动态SQL简介MyBatis的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。有些时候,SQL语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信...

weixin_39567046的博客 286

C++中将一维数组和二维数组(动态的和静态的)作为函数的参数进行传递

C++编程中,我们经常要将数组作为一个参数传递给另一个函数,数组的维数不同,传递的方式也不同。此处做一个总结,介绍一维静态,一维动态,二维静态,二维动态数组的传递方式。 一、一维数组(静态、动态一维数组) 1. 一位数组寻址形式:num[i]的地址:num+i,因此一维数组作为参数传递时候,只需要用数组名作为参数即可。 output(num) void output(int num[])...

shuchong159的博客 4783

C++ 可变参数模板

可变参数模板是C++11引入的特性,它能够创建可变数量参数的模板函数和模板类。这一特性让我们可以编写出更加灵活和通用的代码。可能光这样子说,没有感觉,那就举一个简单的例子吧,假设现在有一个需求:要编写一个函数,它可以接收任意数量的参数,并且参数类型只需要是cout能够显示的即可。从需求来看,传进函数的参数数量不固定,并且类型的顺序也不固定,我们不可能定义很多个打印函数来做到这个需求,因为组合的情况太多太多了。这种情况下,用可变参数模板就可以解决这个问题。

weixin_42463482的博客 1346

TypeScript(ts)环境搭建与编译

一、ts介绍 TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。 二、ts环境搭建 TypeScript编写的程序并不能直接通过浏览器运行,需要通过编译器把代码转换成JavaScript代码,TypeSc

zhangqian19901207的博客 7875

STM32F103C8T6的温湿度传感器(HAL库版)项目源码+文档说明.zip

STM32F103C8T6的温湿度传感器(HAL库版)项目源码.zip基于STM32F103C8T6的温湿度传感器(HAL库版),通过串口向电脑端反馈数据(附通过ESP8266-01s模块连接WIFI上传云平台的资料代码-固件库版本) DHT11的DATA接STM32C8T6核心板的PA3;串口模块:PA9-RX、PA10-TX(CUBEMX指配的UART1)。 插上电脑后通过Python调用串口数据(bps:115200;COM3;数据位8,停止位1)\附效果图+实物图。STM32F103C8T6的温湿度传感器(HAL库版)项目源码.zip基于STM32F103C8T6的温湿度传感器(HAL库版),通过串口向电脑端反馈数据(附通过ESP8266-01s模块连接WIFI上传云平台的资料代码-固件库版本) DHT11的DATA接STM32C8T6核心板的PA3;串口模块:PA9-RX、PA10-TX(CUBEMX指配的UART1)。 插上电脑后通过Python调用串口数据(bps:115200;COM3;数据位8,停止位1)\附效果图+实物图。STM32F103C8T6的温湿度传

上一篇: const 和 static
yaohuang306
博客等级 码龄16年 10粉丝 10原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值