云锦诚科技专注四川德阳网站设计 四川网站制作 四川网站建设
四川德阳网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

简析C++函数参数引用问题

在C++函数参数中,使用了引用作形参,调用时所对应的实参应该是一个数组名,这里的引用是给数组起个别名。在C++函数参数中对数组b的操作,就相当于b所引用数组a的操作。在C++中,常用这种调用方式。

代码如下:

 
 
 
  1. #include     
  2. typedef int array[8];    
  3. int a[8] = {1, 3, 5, 7, 9, 11, 13};    
  4. void fun(array &b, int n)    
  5. {    
  6. for(int i=0; i; i++)    
  7. b[7]+=b[i];    
  8. }    
  9.  
  10. void main()    
  11. {    
  12. int m=8;    
  13. fun(a, m);    
  14. cout<[7]<;    
  15. }   

当一个函数带有多个参数时,C++语言没有规定在函数调用时实参的求值顺序。而编译器根据对代码进行优化的需要自行规定对实参的求值顺序。有的编译器规定自左至右,有的编译器规定自右至左,这种对求值顺序的不同规定,对一般参数来讲没有影响。

但是,如果实参表达式中带有副作用的运算符时,就有可能产生由于求值顺序不同而造成了二义性。例如:int z = add_int(++x, x+y);,这样,在不同的编译器就有可能生产不同的结果。 

设置C++函数参数的默认值  在C++语言中,允许在函数的说明或定义时给一个或多个参数指定默认值。但是,要求在一个指定了默认值的参数的右边,不能出现没有指定默认值的参数。例如: 

在上述对函数add_int()的说明中,对该函数的最右边的一个参数指定了默认值。  在函数调用时,编译器按从左至右的顺序将实参与形参结合,当实参的数目不足时,编译器将按同样的顺序用说明中或定义中的默认值来补足所缺少的实参。例如,如有下列的函数调用表达式。

在给某个C++函数参数指定默认值是,不仅可以是一个数值,而且还可以是任意复杂的表达式。  使用数组作函数参数数组作函数参数可以分为如下三种情况:(这三种情况的结果相同,只是所采用的调用机制不同) 

1. 形参和实参都用数组 

调用函数的实参用数组名,被调用函数的形参用数组,这种调用的机制是形参和实参共用内存中的同一个数组。因此,在被调用函数中改变了数组中某个无素的值,对调用函数该数组的该元素值也被改变,因为它们是共用同一个数组。  #t#

2. 形参和实参都用对应数组的指针 

在C++中,数组名被规定为是一个指针,该指针便是指向该数组的首元素的指针,国为它的值是该数组首元素的地址值,因此,数组名是一个常量指针。  实际中,形参和实参一个用指针,另一个用数组也是可以的。在使用指针时可以用数组名,也可以用另外定义的指向数组的指针。 

3. 实参用数组名形参用引用 

如何对数组类型使用引用方式,这里先做如下说明:先用类型定义语句定义一个int型的数组类型, 然后,使用array来定义数组和引用。 


网页名称:简析C++函数参数引用问题
本文网址:http://www.xiwangwangguoyuan.com/article/djiedpc.html

免费获取网站建设与品牌策划方案报价

*主要业务范围包括:高端网站建设, 集团网站建设(网站建设网站制作)找网站建设公司就上云锦诚科技。
提交需求

    联系我们

    028-86922220
  • 手机:13518219792
  • 地址:成都高新区尚雅路9号2栋16层1619号
  • 四川德阳网站建设网站seo优化公司

    网站建设服务

  • 网页设计
  • 网站制作
  • 网站开发

    网站推广服务

  • 营销网站建设
  • 百度快速排名
  • 整站网站推广

    网站运维服务

  • 基础维护
  • 网站改版
  • 网站维护

    FOLLOW US

  • 微信二维码

    微信二维码

Copyright © 2022 成都云锦诚科技有限公司 四川网站建设公司-选网站建设公司云锦诚科技!国内专业的网站制作公司!
All Rights Reserved 版权所有 蜀ICP备2024117194号-1