当前位置: 首页 > news >正文

值和引用

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

作为一个新手的程序猿,前两天被问到值传递和引用传递的区别的时候,一脸茫然,不知所措。在查阅相关资料以后,决定记录下来。

值传递

在使用的时候,只是将变量的值传递给了函数,函数在处理改值的时候,只是在函数内部对值进行操作和改变,但是,函数运行完之后,并不会改变传递过去的值。相当于把变量复制了一份过去。

引用传递

在使用的时候,将变量的内存地址也传递过去,在对变量进行操作的时候,会改变变量的地址。函数运行完成后,变量的值会发生变化。

下面运行实例:

值传递:

#include<stdio.h>
void testn(int a){
	a++;
	printf("%d\n",a);
}
int main(){
 int a=10;
 testn(a);
 printf("%d\n",a);
 return 0;
}

以上为值传递的实例,
运行结果:

11  
10
  • 可以看出,在调用函数之后,函数内部的值发生了改变,但是,函数结束以后,输出值仍然是最初定义的值。

引用传递:

#include<stdio.h>
void testn(int& a){
	a++;
	printf("%d\n",a);
}
int main(){
 int a=10;
testn(a);
 printf("%d\n",a);
 return 0;
}

以上为引用传递的实例, 运行结果:

11
11

转载于:https://my.oschina.net/aqingyan/blog/751848

相关文章:

  • 装饰器-python
  • 眼见为实:.NET类库中的DateTimeOffset用途何在
  • SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版
  • ios中UIButton选中状态切换
  • WebRTC 的工作原理解析 | 掘金技术征文
  • Spring Boot中使用Swagger2构建强大的RESTful API文档
  • spring2.5整合struts2
  • 重学前端(六)-JavaScript中的class
  • Spring Security 基础登录实例
  • PostgreSQL pgbench SQL RT 与 事务RT 浅析
  • 决策树 熵
  • Knative 核心概念介绍:Build、Serving 和 Eventing 三大核心组件
  • 洛谷P2676 超级书架
  • 讲清楚分布式系统中的这个算法,帮你从面试候选人中脱颖而出!
  • 我的第一天!
  • __proto__ 和 prototype的关系
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Computed property XXX was assigned to but it has no setter
  • cookie和session
  • es的写入过程
  • iOS | NSProxy
  • JAVA并发编程--1.基础概念
  • java多线程
  • MySQL QA
  • Mysql5.6主从复制
  • socket.io+express实现聊天室的思考(三)
  • STAR法则
  • vue-loader 源码解析系列之 selector
  • 初识MongoDB分片
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 好的网址,关于.net 4.0 ,vs 2010
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 新书推荐|Windows黑客编程技术详解
  • 学习HTTP相关知识笔记
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #WEB前端(HTML属性)
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C)一些题4
  • (八十八)VFL语言初步 - 实现布局
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (汇总)os模块以及shutil模块对文件的操作
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (一)kafka实战——kafka源码编译启动
  • (转载)Google Chrome调试JS
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net core 6.0 升8.0
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net Signalr 使用笔记
  • .net 后台导出excel ,word
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .Net各种迷惑命名解释