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

05-函数传值VS传引用

函数传值

一、没法改变值的方式:

一个变量拷贝到另一个变量, 这种形式的函数调用被称为: 传值调用

局部变量的生命周期在函数的运行期间会一直存在.

void Increment(int a)//假设一个 x(只是为了验证实参会被映射到形参这件事情),a的值会被拷贝到x
{
	a = a + 1; //1. x = x + 1  值为11 //a映射到x, a的值拷贝到x
    //2.执行完毕后Increment()函数在内存上的栈针空间被清除,继续执行main函数中的printf语句
	printf("Address of variable a in increment = %d\n", &a);
}

int main(int argc, const char* argv[])
{
	int a;
	a = 10;
	Increment(a); 
	printf("Address of variable a in main = %d\n", &a);
	printf("a = %d", a);
}

二、可以改变值的方式(传引用):

传变量的地址--> 解引用并且做一些操作 就叫做传引用(用指针传值的方式)

传引用的好处: 可以节省内存空间

void Increment(int *p)
{
	*p=(*p)+1;
}

int main(int argc, const char* argv[])
{
	int a;
	a = 10;
	Increment(&a);
	printf("a = %d", a);
}

程序一开始执行之后调用到内存,中的执行步骤: 堆和栈的概念:


http://www.kler.cn/news/327507.html

相关文章:

  • 2.点位管理|前后端如何交互——帝可得后台管理系统
  • 基础漏洞——SSTI(服务器模板注入)
  • leetcode-134. 加油站-贪心策略
  • 数据结构与算法学习(2)
  • 汽车灯光系统详细介绍
  • 【机器学习】---深入探讨图神经网络(GNN)
  • 【STM32】 TCP/IP通信协议(3)--LwIP网络接口
  • 将 Intersection Observer 与自定义 React Hook 结合使用
  • 基于RPA+BERT的文档辅助“悦读”系统 | OPENAIGC开发者大赛高校组AI创作力奖
  • ruoyi-python 若依python版本部署及新增模块
  • 基于springboot+微信小程序社区超市管理系统(超市3)(源码+sql脚本+视频导入教程+文档)
  • 使用 CMake 构建 C 语言项目
  • 《Zeotero的学习》
  • Linux中安装ffmpeg
  • 随手记:牛回速归
  • Simulink仿真中get_param函数用法
  • 代码随想录算法训练营Day14
  • 【C#】CacheManager:高效的 .NET 缓存管理库
  • PCL库简单NDT算法配准
  • mini-lsm通关笔记Week2Overview
  • SpringBoot中使用XXL-JOB实现灵活控制的分片处理方案
  • C++的类型转换
  • Redis: 主从复制读写分离环境搭建
  • 2024电脑视频剪辑软件全解析与推荐
  • Prompt:在AI时代,提问比答案更有价值
  • O2OA(翱途)服务器故障排查
  • 学习经验分享【38】YOLOv11解读——最新YOLO版本
  • linux文件编程_文件
  • 记录一次gRpc流式操作
  • 正则表达式的使用示例--Everything文件检索批量重命名工具