C++中函数传递的方式有哪些

本篇文章为大家展示了C++中函数传递的方式有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

专注于为中小企业提供成都网站制作、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业眉山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

值传递:

  1. void fun(int x)  

  2. {  

  3. x += 5; //修改的只是y在栈中copy x,x只是y的一个副本,在内存中重新开辟的
    一块临时空间把y的值送给了x;这样也增加了程序运行的时间,降低了程序的效率。  

  4. }  

  5. void main(void)  

  6. {  

  7. int y = 0;  

  8. fun(y);  

  9. cout<<\"y = \"<

指针传递:

void fun(int *x)  {  *x += 5; //修改的是指针x指向的内存单元值  }  void main(void)  {  int y = 0;  fun(&y);  cout<<<<\"y = \"<

引用传递:

void fun(int &x)  {  x += 5; //修改的是x引用的对象值 &x = y;  }  void main(void)  {  int y = 0;  fun(y);  cout<<<<\"y = \"<

看了C++函数传递后我们继续来谈“const只能用于修饰输入参数”的情况。

  • C++可变参数表基本内容探讨

  • 各个C++内存区域功能对比

  • C++ static不同的应用方式

  • C++输入输出汉字具体应用技巧分享

  • C++地址运算符相关内容详解

当输入参数用“值传递”方式时,我们不需要加const修饰,因为用值传递时,函数将自动用实际参数的拷贝初始化形式参数,当在函数体内改变形式参数时,改变的也只是栈上的拷贝而不是实际参数。

但要注意的是,当输入参数为ADT/UDT(用户自定义类型和抽象数据类型)时,应该将“值传递”改为“const &传递”,目的可以提高效率。

例如:

void fun(A a); //效率底。函数体内产生A类型的临时对象用于复制参数 a,但是临时对象的构造、复制、析构过程都将消耗时间。

void fun(A const &a); //提高效率。用“引用传递”不需要产生临时对象,省了临时对象的构造、复制、析构过程消耗的时间。但光用引用有可能改变a,所以加const

当输入参数用C++函数传递中的“指针传递”方式时,加const修饰可防止意外修改指针指向的内存单元,起到保护作用。

例如:

void funstrcopy(char *strdest,const char *strsrc) //任何改变strsrc指向的内存单元,编译器都将报错

些时保护了指针的内存单元,也可以保护指针本身,防止其地址改变。

例如:

void funstrcopy(char *strdest,const char *const strsrc)

上述内容就是C++中函数传递的方式有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


文章标题:C++中函数传递的方式有哪些
当前地址:http://azwzsj.com/article/phdish.html