C++中函数的基础知识

》函数

        函数(function)是一个可以独立完成某个功能的语句块。C++程序其实就是由一系列的函数组成。main函数是其中的一个函数,C++程序从main函数开始执行。函数的主要作用是将复杂程序拆成若干易于实现的子程序。另外将程序中重复实现的功能封装到一个函数中,这样即提高了程序的开发效率,也提高了程序的可靠性,同时也极大地增强了程序的可读性。

        在C++中,函数分为标准函数(又称为预定义函数)和用户自定义函数。标准函数是系统已实现并通过函数库形式提供的函数,如数学函数sqrt、pow。字符串处理函数strcpy、strlen等。程序员在编写程序时可以直接使用标准函数。在C++中,所有的标准函数都被放在不同的函数库中,并有一个与之对应的头文件,例如,头文件iostream中包含了I/O函数,头文件cmath中包含了常用的数学函数。如果要在程序中使用标准函数,必须使用include预处理命令将包含该函数的头文件包含到程序中。标准函数在不同的平台上都具有统一的接口,所以使用标准函数一方面提高了程序的开发效率,另一方面又使得程序具有很好的可移植性。


>函数定义

           定义形式:

                   <返回类型><函数名>(<形参列表>)

                       {

                           <函数体>

                        }

           <函数名>一般是标识符,取一个有助于记忆和理解的名字可以增加程序的可读性。

           <形参列表>由逗号分隔,分别说明函数的各个形参。形参将在函数被调用时从调用函数那里获得数据。在C++中,函数形参列表可以为空,即一个函数可以没有参数,尽管如此,括起函数参数的一对圆括号不允许省略。

           <返回类型>又称函数类型,表示一个函数所计算(或运行)的结果值的类型。如果一个函数没有结果值,如果函数仅用来更新(或设置)变量值、显示信息等,则该函数返回类型为void类型。一个没有返回值的函数类似于一些程序语言(如Pascal语言)中的过程(procedure)。

            由一对花括号括起来的<函数体>是语句的序列,它定义了函数应执行的具体操作。

            注:C++不允许函数定义嵌套,即在一个函数体内不能包含有其他函数的定义。在C++中,return是一个关键字,当函数执行到return语句时,函数将立即终止执行,并将程序的控制权返回给调用函数。当一个函数带有返回值时,应保证函数每个可能执行路劲上应有返回值。当函数没有return语句时,在执行完最后一条语句后将返回到调用函数。


>函数调用

         一般形式:

               <函数名>(<实参表>)

         当调用一个函数时,其实参的个数、类型及排列次序必须与函数定义时的形参相一致,也就是说实参与形参应该一对一地匹配。若函数定义时没有形参,则函数调用时<实参表>为空。

          >语句调用。通常用于不带返回值的函数。这种情况下,被调用函数作为一个独立的语句出现在程序中。

          >表达式调用。将被调用函数作为表达式的一部分进行调用,适用于被调用函数带有返回值的情况。

                           例:cout<<max(1,2);

          >参数调用。被调用函数作为另一个函数的一个参数进行调用,例如:利用函数max计算三个数的最大值。

                           例: c=max(3,max(1,2));


>函数原型

          在C++中,函数在使用之前要预先声明。这种声明在标准C++中称为函数原型(function prototype),函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数的个数和类型。

          函数原型的语法:      <返回类型><函数名>(<形参列表>);  注:在函数原型后要又分号!!!

                  #直接使用函数定义的头部,并在后面加上一个分号。

                  #在函数原型声明中省略参数列表中形参变量名,仅给出函数名、函数类型、参数个数及次序。

          注:在C++中,在调用任何函数之前,必须确保它已有原型声明。函数原型声明通常放在程序文件的头部,以使得该文件中所有函数都能调用它们。


>函数返回类型

               #带参数的有返回值函数

               定义形式:

                               <返回类型><函数名>(<形参列表>)

                               {

                                     <语句序列> 

                               }

                例:阶乘函数。

#include<iostream>
using namespace std;
int fact(int n);
int main(){
    cout<<fact(5)<<endl;

    system("pause");
    return 0;
}
int fact(int n)
{
    int f=1;
    while(n)
    {
	f*=n;
	n--;
    }
    return f;
}

             #不带参数的有返回值函数

             定义形式:

                              <返回类型><函数名>()

                              {

                                   <语句序列>

                              }

              例:从键盘获取一个整数。

#include<iostream>
using namespace std;
int main(){
    int x;
	cout<<"please input a number!\n";
	cin>>x;

       system("pause");
	return 0;
}

             #带参数的无返回值函数

             定义形式:

                              void <函数名>(<参数列表>)

                              {

                                   <语句序列>

                               }

             例:评定成绩,将百分制表示的成绩转换为五级平分。    

#include<iostream>
using namespace std;
void printgrade(int score);
int main(){
    printgrade(99);

    system("pause");
    return 0;
}
void printgrade(int score)
{
    cout<<"your grade for the course is ";
    if(score>=90)
        cout<<"A"<<endl;
    else if(score>=80)
        cout<<"B"<<endl;
    else if(score>=70)
        cout<<"C"<<endl;
    else if(score>=60)
        cout<<"D"<<endl;
    else
        cout<<"F"<<endl;
}

           

             #不带参数的无返回值函数

             定义形式:

                             void <函数名>()

                             {

                                  <语句序列>

                              }    

               例:在屏幕上用星号打印一个三角形。

#include<iostream>
using namespace std;
void printstar();
int main(){
    printstar();

	system("pause");
	return 0;
}
void printstar()
{
	for(int i=1;i<=10;i++)
	{
	     for(int j=0;j<i;j++)
	         cout<<"*";
	     cout<<endl;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值