导语:C语言中函数之间的数据传递方式有值传递、引用传递、地址传递。下面就由小编为大家介绍一下,欢迎大家阅读!
1 函数之间数据传递方式分类
C语言程序是由函数组成的。设计C语言程序时,通常将一个大的程序按功能分成若干个较小的模块,每个模块编写成结构清晰、接口简单、容易理解的程序段,即函数。这种方法可建立公用模块,消除重复工作,提高程序开发效率。[1]从函数的形式来看,函数可分为无参函数和有参函数。在调用有参函数时,主调函数与被调用函数之间有数据传递,也就是说,主调函数可以将数据传递给被调函数使用,被调函数中的数据也可以带回来给主调函数使用。
值传递:数据只能从实参单向传递给形参,称为“按值”传递。当基本类型变量作为实参时,在函数调用过程中,形参和实参占据不同的存储空间,形参的改变对实参的值不产生任何影响
引用传递:使实参和形参共用一个地址,即所谓“引用传递”。这种传递方式,无论对哪个变量进行修改,都是对同一地址内存空间的内容进行修改,其实参变量与它的引用即形参变量,总是具有相同的值。例如程序:
2 函数之间的地址传递
2.1 形参为指针变量时函数之间的数据传递。如果函数的形参为指针类型时,对应的实参类型必须与形参的基类型相同。
例如程序:调用swap函数,用指针传递的方式交换主函数中变量x和y中的数据。
函数之间值的传递是单向传递,也就是说函数只能通过实参把值传递给形参,若形参值改变,对实参不会产生影响;把数据从被调函数返回到主调函数的唯一途径就是通过return语句,且只能返回一个数据。若是采用以上通过传递地址值的方式ÿ