首页 > 其他分享 >C语言: 函数 值传递 || 指针传递

C语言: 函数 值传递 || 指针传递

时间:2023-12-25 14:47:35浏览次数:31  
标签:函数 C语言 传递 修改 原始数据 指针

在C语言中,函数可以使用指针传递和值传递来传递参数。

  通常情况下,使用值传递是最常见和最简单的方式。在值传递中,函数的参数会被复制一份,然后传递给函数。这意味着在函数内对参数的修改不会对原始数据产生影响。

  当你只需要传递一个简单的数据类型,如整数或浮点数时,值传递是一个不错的选择。

指针传递则适用于以下几种情况:

  1. 当你需要在函数内修改原始数据时,可以使用指针传递。通过传递指向变量的指针,函数可以直接操作原始数据而无需进行复制和返回。

  2. 当你需要传递一个数组给函数时,使用指针传递是非常常见的。因为数组名本身就是指向数组的指针,所以函数可以直接使用指针来访问和修改数组的内容。

  3. 当你需要传递一个指向结构体的指针时也可以使用指针传递。这样函数可以直接通过指针来访问和修改结构体的成员。

需要注意的是,在使用指针传递时要确保传递的指针指向有效的内存地址,否则可能会导致程序运行时错误。同时,在函数内修改原始数据时要小心,确保不会发生意外的副作用。

C语言 函数 值传递里的元素会被主函数里同变量名元素影响,如函数里a=10,但在主函数里如果a= 5,最终printf出来a= 5;

标签:函数,C语言,传递,修改,原始数据,指针
From: https://www.cnblogs.com/NevMore/p/17926044.html

相关文章

  • Floyd判联通(传递闭包) & poj1049 sorting it all out
    Floyd判联通(传递闭包)Floyd传递闭包顾名思义就是把判最短路的代码替换成了判是否连通的代码,它可以用来判断图中两点是否连通。板子大概是这个样的:for(intk=1;k<=n;k++){ for(inti=1;i<=n;i++){ for(intj=1;j<=n;j++){ //把数值计算替换成逻辑运算——就一行,非......
  • Chrome扩展程序是如何进行消息传递的
    大家好,我是dom哥。这是我关于Chrome扩展开发的系列文章,感兴趣的可以点个小星星。一个复杂的Chrome扩展程序通常由content_scripts,background,actionpopup,sidepanel,optionspage,devtools等部分组成,这些部分所负责的功能各不相同,所处的运行环境各不相同,所能访问的chrome......
  • 在Linux环境下模拟实现命令解释器用c语言实现mypwd「粉丝答疑」
    Solution要在Linux环境下用C语言模拟实现一个命令解释器,包含mypwd,mymkdir,myrmdir,mycd,mylist,mycp,mydate,mycreate,mydelete,exit等基本命令,需要按照以下步骤进行:理解每个命令的功能:mypwd:显示当前工作目录。mymkdir:创建一个新目录。myrmdir:删除一个空目......
  • 116.+117. 填充每个节点的下一个右侧节点指针(Ⅰ+Ⅱ)(中)
    目录题目题解:BFS题目给定一个完美二叉树(117的Ⅱ题不是完美二叉树,是二叉树,其余一样),其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:structNode{intval;Node*left;Node*right;Node*next;}填充它的每个next指针,让这个指针指向其下一个右侧......
  • c语言 通过openssl进行rsa的加密和解密
    参考资料https://blog.csdn.net/enjoyinwind/article/details/23530303https://blog.csdn.net/stormbjm/article/details/46898757摘自:https://blog.csdn.net/u011983700/article/details/108240200 最近项目中需要用到RSA加密,网上这方面的资料很多,研究了一番,发现直接用open......
  • EKP qhky 流程启接口addReview 支持明细表地址本传递多值
     问题描述: 流程启动接口(addReview),给第一行多人员地址本字段 传多个部门,后台代码解析不成功     /** * *20230703定制处理附件列表问题sjx * ***/ for(inti=0;i<attForms.size();i++){ S......
  • c语言中的循环语句
    C语言是一种非常流行的程序设计语言,其循环语句是编程中非常重要的一部分。循环语句允许程序重复执行一段代码,直到满足特定条件为止。在C语言中,有三种主要的循环语句:for循环、while循环和do-while循环。首先,让我们来看一下for循环。for循环是C语言中最常用的循环语句之一,它允许我们......
  • 【算法】双指针法
    还记得A-B=C问题吗?在之前,我们把原序列排好序,然后变成A=B+C问题,枚举每一个元素作A,然后再序列里如果存在B+C,必然是连续的一段(一个也是),我们利用二分法以O(logN)的时间复杂度获得左右边界相减即可。现在介绍另一种方法:双指针法。如上面说的,序列里如果存在B+C,必然是连续的一段。维护两......
  • 微信小程序循环展示数据,选中将参数传递至js,由js传递至另外一个页面
    关键词:微信小程序、页面切换、参数传递、页面切换时的参数传递。1、页面1的wxml:循环展示数据,并选中,将参数传递至js<blockwx:for="{{caselist}}"wx:for-item="item"style="display:flex;"><viewclass="item"><buttoncatchtap="casedetai......
  • 2023-2024-1 20231407陈原计算机科学技术与c语言程序设计第十三周总结
    这个作业属于哪计算机科学技术与c语言程序设计作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13作业目标c语言程序设计第十二章作业正文 https://www.cnblogs.com/CCCY12345/p/17924825.html结构体是一种用户自定义的数据类型,可以包含不同数据......