C语言 的 通过值和引用函数

将参数值或数据传递给C语言函数有两种方法:通过值调用和通过引用调用。原始值在通过值调用时不修改,但通过引用调用时,在函数中可进行修改。

下面将分别讲解如何通过值调用和通过引用调用,并用使用示例逐个调用演示执行。

通过值调用

在通过值调用函数时,原始值不被修改。

在通过值调用时,传递给函数的值由函数参数在堆栈内存位置中本地存储。如果更改函数参数的值,则仅对当前调用函数中的值进行临时更改。它不会改变调用者方法(如:main())中的变量的值。即:函数只是使用参数值的一个副本,函数执行完成副本删除,而原始值不会有任何影响。

我们试着通过下面的例子来了解C语言中的通过值调用的概念,首先创建一个工程:function-call-by-value-reference,并在这个工程下创建一个源文件:call-by-value.c,其代码如下所示-

#include

void change(int num) {

printf("Before adding value inside function num=%d \n", num);

num = num + 10;

printf("After adding value inside function num=%d \

c语言change函数用法,通过值和引用函数相关推荐

  1. SHELL/SSH基础知识(入门篇)-包含 shell 脚本语言的基本用法、 shell 脚本语言的基本用法、流程控制、函数 function、其它脚本相关工具、数组 array(欢迎留言交流)

    目录 1 shell 脚本语言的基本用法 1.1 shell 脚本注释规范 1.1.1 shell 脚本注释规范 1.1.2 执行(5种) 1.1.3 在远程主机运行本地脚本 1.1.4 检查shel ...

  2. c语言调用oracle函数返回值吗,C语言通过值和引用函数

    . 将参数值或数据传递给C语言函数有两种方法:通过值调用和通过引用调用.原始值在通过值调用时不修改,但通过引用调用时,在函数中可进行修改. 下面将分别讲解如何通过值调用和通过引用调用,并用使用示例逐个 ...

  3. C语言scanf函数的返回值、scanf函数的安全版、在while条件中使用scanf函数

    scanf函数的返回值,是正确读取的项数:读入一个数,返回1,读入2个数,则返回2,如此: VC2012,先做一个测试程序: 提示出错: error C4996: 'scanf': This func ...

  4. C++_引用做函数的返回值_引用的本质---C++语言工作笔记032

    然后我们再去看,要注意不要反悔局部变量的引用什么意思? 比如这里我有个方法,test01,他返回了一个int a =10; 这个变量的引用,而a这个变量是个局部变量. 这个时候我们去用一个引用,接收这 ...

  5. lua语言定义一个比较两值大小的函数

    -- [[函数返回两个值的最大值]] function max(num1,num2) if (num1 > num2) then         result = num1;     else ...

  6. c语言isnumber函数用法,科技教程:ISNUMBER函数介绍及用法

    如今越来越多的小伙伴对于ISNUMBER函数介绍及用法这方面的问题开始感兴趣,看似平静的每一天,在每个人身上都在发生着各种各样的故事,因为大家现在都是想要了解到此类的信息,那么既然现在大家都想要知道I ...

  7. pythoncast函数用法_数据库中cast函数

    SQL Server 中随机函数应用举例 最近工作中要随机生成一些数据,基本上全是通过rand()函数来完成.下面以几个例子做下简单说明. 1.生成年龄 思路:年龄一般为0-100岁,只要以当时日期为 ...

  8. python print函数用法_Python3.2中Print函数用法实例详解

    本文实例讲述了Python3.2中Print函数用法.分享给大家供大家参考.具体分析如下: 1. 输出字符串 >>> strHello = 'Hello World' >> ...

  9. python中time函数用法_python中time tzset()函数实例用法

    在时间的设置方面,为了能够跟系统时间有更好的区分,我们有时会借用一些函数方法来实现.就拿tzset()来说是设置时间的一种方法,其内在的变量依靠TZ的控制,如果没有设置TZ则以系统时间为准.接下来我们 ...

最新文章

  1. c语言怎么创建一个h文件,求助C语言大佬 , 只会写到一个.c文件里 ,不会用.h头文件...
  2. 线程池:治理线程的法宝
  3. 《征服C指针》作者语录
  4. 实验16:使用context:include-filter指定扫描包时要包含的类 实验17:使用context:exclude-filter指定扫描包时不包含的类
  5. python基础教程:对可变对象和不可变对象的详解
  6. 电脑同时安装python2和3_一台电脑上同时安装python2和python3
  7. Centos6.4系统局域网服务之DHCP
  8. 来自Google的面试题,真的有趣!果然与众不同
  9. C++ 内存分配(new,operator new)详解
  10. 11 个创新的网站滑动效果设计案例展示
  11. 【邮政编码识别】基于matlab灰度二值化邮政编码识别【含Matlab源码 788期】
  12. SVS为某大学打造无纸化会议室
  13. 电子计算机为什么123安不出来,方正软件常见问题及其解决办法-精.doc
  14. display:weston:desktop xdg-shell
  15. (六)Graphics基本应用
  16. 红色警戒2修改器原理百科(三)
  17. Jmeter遇到打不开的问题
  18. 攻防演练中防守方的防护措施.
  19. matlab两轮自平衡小车,基于LQR算法两轮自平衡小车的系统设计与研究
  20. CSS3,JS制作网页动画(时空穿梭,魔方,坠落星星,全屏樱花特效)

热门文章

  1. Java实现XML格式化
  2. 华为认证的含金量高吗?
  3. js 中日期 转换成时间戳 例如2020-12-19 转换为时间戳
  4. 对比学习(contrastive learning)
  5. 人生的康波周期,把握住一次,足以改变命运!
  6. 从数字企业转型来看,数据分析能带来什么
  7. xmind设计测试用例以及与云效平台的交互
  8. 阿里云服务器防止暴力破解设置
  9. 平板手写笔有必要买吗?开学季便宜又好用电容笔推荐
  10. springboot---微信小程序上传文件(word/pdf文件)