• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Star_Lee
博客园    首页    新随笔    联系   管理    订阅  订阅

C++中函数的调用

在C++中,要调用一个函数必须先申明这个函数,即在main()函数之前申明这个函数,但函数的定义则可以放到main()函数之后。

对于一个给定的函数可以进行多次调用

当函数的调用时,函数的实参与形参传递方式有两种:

第一种就是直接将实参(argument)传递给形参(variable),这种方式传递给函数体的值在函数体内部发生改变时不会影像到实参本身

第二中是通过reference的方法将实参(argument)传递给形参(variable),reference方法仅在形参前加了一个ampersand符号,这种方式会把实参和形参关联在一起,在函数体内发生的参数变化会影像到实参的变化,例如:

// passing parameters by reference

#include <iostream>

using namespace std;

void duplicate (int &a, int &b, int &c)

{   a*=2;   b*=2;   c*=2; }

int main ()

{   int x=1, y=3, z=7;  

duplicate (x, y, z);

  cout << "x=" << x << ", y=" << y << ", z=" << z;  

return 0; }

 该函数将实参 x=1, y=3, z=7通过reference方式分别传递给形参a, b, c ,当a, b, c 在函数体内加倍时,实参也相应的发生变化,因此最后输出结果会变成

x=2, y=6, z=14

引入reference方法的原因

调用函数直接赋值等同于形参复制了实参的值,这种方法对于一长串字符来说显得过于低效,因此可以通过reference方法来赋值,reference方法不是单纯的复制,因此可以大大的提高函数调用的效率,而这种方法仍然存在一个问题,即在调用函数时并不希望参数发生变化,而这可以通过const 关键字来保证,即在函数定义时,在函数的参数前加一个const关键字,例如

string concatenate (const string& a, const string& b)
{
  return a+b;
}

这样定义的参数就不允许发生变化,同时采用reference方法来赋值以提高函数调用的效率。

inline 提高短小函数的调用效率

当一个函数体较小时,采用常规的函数调用方法会浪费资源,可以通过inline来提高函数的使用效率,即在函数体的定义前加inline,这样表示该函数在主函数中调用时不是遵循普通函数的call调用方法,而是直接将函数插入到主函数需要引用的地方,这样提高了函数的使用效率。

 

posted @ 2017-11-06 20:12  Star_Lee  阅读(3072)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3