要了解传参首先得清楚实参和形参,下面来描述一下他们的区别
1.形式上
形参:定义一个函数void add(int a, int b),这里的a和b就是形参。
实参: 当你进行函数调用的时候,add(1, 2),这里的1和2就是实参
2.使用
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
3.内存占用
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。
下面来描述传值和传址的区别
传值:把A的数值传到B,改变B,A不会跟着变,B存的是跟A一样的值;
传值时在内存中新开辟一个空间,将值赋给这个新开辟的空间,其生命周期为该函数调用结束时释放该空闲,计算结果不影响原调用数据内存空间的值。
传址:把A的地址传到B,改变B,A同时跟着变,B存的只是A的地址(类似电脑的快捷方式)
传址时同样新开辟一个空间,但不同的是将所用数据空间的内存地址存在新开辟的空间中,函数在数据处理过程中由于是地址(指针),即对源数据进行操作,操作后结果影响原数据。