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

您所在的位置:网站首页 c语言中函数形参和实参的传递方式 C语言中函数形参与实参的区别

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

2024-07-14 11:36| 来源: 网络整理| 查看: 265

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

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

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

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

 形参和实参之间的传递

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

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

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

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

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

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

注意:

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

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

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

关于指针请自行了解。

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3