您的位置:首页 > 其它

3.2 参数传递、返回值及函数声明

2016-06-12 08:52 99 查看


一.函数的参数传递及传值调用

函数调用发生时,首先要将实参的值按位置传递给对应的形参变量。一般情况下,实参和形参的数量和排列顺序应该一一对应,并且对应参数的类型必须匹配,而对应参数的参数名则不要求相同。某些特殊情况下也允许参数的数量不对应,这将在函数高级议题中讨论。

按照参数形式的不同,C++有两种调用方式:传值调用和引用调用。
传值调用:顾名思义,传递的是实参的值,本章介绍传值调用。
引用调用:将在第4章 类与对象中介绍。

举例: 【例3.2】 说明实参和形参对应关系的示例。
#include <iostream >
#include<cmath >
using namespace std;
float power(float x,int n){                //求x的n次幂
    float pow=1;
    while(n--)
        pow*=x;
    return pow;
}
int main(){
    int n=3;
    float x=4.6;
    char c='a';
    cout<<"power ("<<x<<','<<n<<")="<<power(x,n)<<endl;
    cout<<"power ("<<c<<','<<n<<")="<<power(c,n)<<endl;        //A
    cout<<"power ("<<n<<','<<x<<")="<<power(n,x)<<endl;        //B
    return 0;
}


二.函数返回值

return语句的一般格式为:
    return
<表达式>;
函数的计算结果通过该语句传递回主调函数。


三.函数声明

语法上对程序文件中函数的排列次序是没有固定要求的,只要满足先定义后使用即可。但从结构化程序设计的角度,通常是先调用后定义。使用函数原型,则既符合由粗到精的思维方式,又满足了语法要求。

函数原型是一条以分号结束的语句,实际上就是所定义函数的函数头,形如:
    [<函数返回值类型>]<函数名>
([<形参表>]) ;

请看以下从实际中抽象的例子:下面是一个使用结构化程序设计思想开发的企业管理报表程序的框架。

1、程序设计过程应从主函数main()入手。
#include <iostream.h>
void menu_print(); //函数原型说明
void account_report(); //函数原型说明
void engineering_report(); //函数原型说明
void marketing_report(); //函数原型说明
void main(){
    int choice;
    do{
        menu_print();
       cin>>choice;
   } while(choice==0);
   switch(choice){
      case 1:account_report(); break;
      case 2:engineering_report(); break;
      case 3:marketing_report(); break;
   }
}

2、再实现各个子函数
void menu_print(){
   //打印主菜单
   cout<<”系统功能:”<<endl;
   cout<<”1 财务报表”<<endl;
   cout<<”2 工程报表”<<endl;
   cout<<”3 市场报表”<<endl;
   cout<<”选择业务序号:”;
}
void account_report(){
   //生成财务报表
}

void engineering_report(){
   //生成工程报表
}

void marketing_report(){
   //生成市场报表
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: