首页 > 其他分享 >C语言中函数形参与实参的区别

C语言中函数形参与实参的区别

时间:2022-11-19 11:32:01浏览次数:49  
标签:函数 形参 C语言 传递 实参 变量 指针

众所周知一个函数有两种参数,即形参和实参。那么究竟什么是形参什么是实参呢?

形参:在定义函数时指定的参数,在未出现函数调用时,他们并不占用内存中的存储单元。只有在发生函数调用时,函数中的形参才被分配内存单元。在函数调用结束后,形参所占用的内存单元也被释放。


实参:即你调用函数时传递的参数。实参可以是常量、变量、表达式。


注意:形参和实参实际上占用的是两份不同的存储单元。

C语言中函数形参与实参的区别_指针变量



形参和实参之间的传递

在c语言中,实参与形参的数据传递是“值传递”,单向传递,只能由实参传给形参,不能由形参传递给实参。形参的值如果发生改变,并不会改变主调函数的实参的值。


形参与实参的之间的传递分类

1、按值传递(实形无联系)


按传递就是平常编程中经常用到的,定义一个基本数据类型的变量,在调用某函数时把该变量作为函数的实参传递给函数。这种传递方式采用的是单向值传递,实形无联系,形参改变不影响实参。


2、按地址传递(通过操作形参可能会改变实参)


按地址传递主要出现在函数参数是指针变量、数组等的时候。


注意:


实质上用指针做函数参数的情况下,在调用函数时,将实参变量的传递给形参变量,采取的依然是单向值传递。如果在被调函数中只是单纯改变了形参指针变量的值,在函数调用结束后这些形参被销毁,是不会影响调用函数时传入实参指针变量值。


只有当你在被调函数中通过操作形参指针变量,去改变了指针指向变量的值时,才可以改变实参指针变量所指向变量的值。也只有这种情况下形参改变才可能影响实参。


实质上,指针操作起到了偷梁换柱的作用。


关于指针请自行了解。


标签:函数,形参,C语言,传递,实参,变量,指针
From: https://blog.51cto.com/u_14682436/5870358

相关文章

  • 箭头函数与普通函数的区别、浏览器解析html的过程
    箭头函数与普通函数1.书写方式不同,箭头函数使用箭头定义,普通函数使用关键字 2.this指向不同:箭头:2.11箭头函数本身没有prototype,所以没有自己的this,2.21它的this只能......
  • C语言随笔4
    结构体(自己创造出来的一种类型)structBook                                   struct结构体......
  • 计算机等级考试二级C语言程序设计专项训练题——程序设计题(六)
    41、编写函数void fun(inta[],intb[],int*n),其功能是:找出数组a保存的100个四位数中的全部素数,将这些素数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行......
  • 函数式编程
    函数式编程函数是一等公民,函数式的思想来源于数学运算,而柯里化的操作可以将多参函数转为单参函数,而单参函数一般希望是纯函数(即不存在副作用的函数),可以实现f(g(x))这样......
  • sql 函数
               ......
  • ES6之函数参数默认值
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>函数......
  • OpenCV常用函数
    1.读取图像cv2.imread(filename,[,flags])2.色彩空间转换dst=cv2.cvtColor(src,code,[,dstCn])code是色彩空间转换码dstCn是目标图像的通道数。如果参数为默认值......
  • Python全部内置函数详细认识(上篇)
    ......
  • 15.DataFrame的重要函数
    importpandasaspddata=[['小太阳',320.9,100],['鼠标',150.3,50],['小刀',1.5,200]]columns=['名称','单价','数量']df=pd.DataFrame(data=data,colu......
  • 计算机等级考试二级C语言程序设计专项训练题——程序设计题(五)
    36、编写函数void fun(int*a,int*n),其功能是:求出100~999之间所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293),并将其放在a所指的数组中,通过n返回这......