函数定义时参数列表中的参数称为形参,函数调用时参数列表中的参数称为实参
成都创新互联是专业的龙口网站建设公司,龙口接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行龙口网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
你要知道函数中形参和实参的不同之处,实际传递的是指针的拷贝,形参和实参是两个指针。不过这两个指针指向了相同的地址。它们可以共享指针向地址中的数据,但是不能共享指针本身的指向。而引用传递的,形参和实参是同一个变量。
最根本的还是一句话:按值传递时,形参和实参是两个变量;引用传递时,形参和实参是同一个变量。
明白了以上的问题,回到形参本身
先说寿命:形参在建立时就相当于建立一个指针,他的寿命等同于程序本身。
再说作用域:形参的作用域是根据他的指针指向的对象决定的,也就是传递的实参是 按值传递还是引用传递,如果是按值传递,那么他的作用域就在函数本身内运行,如果是引用传递,则实参是全局变量,还是局部变量决定了形参指针的作用域范围。
A、声明不需要形参,只需要形参的类型
B、 形参作用域限制在函数体 { } 之间
不用纠结它是不是所谓 中国式翻译 的 原型作用域
如果函数本身带static修饰,那么作用域是当前文件,从声明位置或者定义位置,到文件结尾。
如果函数没有static,那么作用域为整个工程或者说是项目。
函数的形式参数的作用域为本函数。
形式参数是在定义函数名和函数体的时候使用的,目的是用来接收调用该函数时传入的参数。
其作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。
形式参数不是实际存在变量,只有在程序执行过程中调用了函数,形式参数才有可能得到具体的值,并参与运算求得函数值。
扩展资料
形参和实参的关系
(1)形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
(2)形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
(3)实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
(4)形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量。
参数传递的过程,就是初始化函数形参的过程。
1、按值传递
按值传递是最直接也是最容易理解的参数传递方式。当进行调用的时候,将参数的值通过拷贝赋值给形参,形参的值在函数体内进行各种计算时,并不影响函数外实参的值,形参值的改变与实参无关。形参的建立是自右往左的,也就是先建立y,再建立x,而函数结束时,删除的顺序与之相反。
2、按地址传递(指针形参)
按地址传递是用变量的地址初始化形参,这时候的形参是一个指针。
3、按引用传递
对于引用的操作就是对对象本身的操作,引用是被引用对象本身的一个“别名”,按引用传递参数与引用类似,形参成为了实参的一个“别名”。
优势
1、避免进行拷贝操作
在实际使用中,常常需要传递很大的容器对象,或者是大的类类型对象,这些时候需要调用拷贝构造函数进行传参,效率低下,通过引用可以很好的避免这一点,大大地节约计算时间和计算资源。
2、用于返回信息
一个函数一次只能返回一个值,当需要通过函数知道多个变量的信息是,仅仅有返回值是不够的,引用形参提供了很好的渠道,通过引用可以获得函数计算后的各个值,甚至不需要接收函数的返回值。
参考资料来源:百度百科--形式参数
a和b的作用域仅限于内层大括号,出了大括号则不可访问或者表示外部的同名变量。在内层大括号内a表示内层中定义的a,它覆盖了外层中定义的a的作用域。
对呀,形参相当于一个局部变量,其实就是一个局部变量,局部变量的作用域是从定义开始到函数结束。每个函数的形参变量名可以相同就说明了这个问题。