C++基础之函数和作用域

(1)函数的定义格式如下所示。
<类型><函数名>(<形参表>)
{
<若干条语句>
}
其中,<类型>包含存储类和数据类型。存储类省略为外部函数,加static为内部函数;数据类型又称函数返回值的类型,不可省略。<函数名>同标识符,<形参表>中可以有一个或多个参数,多不参数用逗号分隔,也可以没有参数。以上是函数头。函数体是由一对花括号括起来的若干条语句。如果函数体内无语句,称为空函数。
(2)函数的说明方法是使用函数的原型,即函数头,它包含了<类型>、<函数名>和函数参数的类型及个数。凡是定义在后,调用在先,调用之前都必须说明。
(3)函数的类型是该函数返回值的类型。函数的值是该函数的返回值。一个有返回值的函数中需要一条带表达式的返回语句,其格式如下所示。
return<表达式>;
(4)函数的调用方式有传值调用和引用调用两种。传值调用中又有传送变量或表达式的值和传送变量地址值两种。这与C语言中的函数调用相同。引用
调用是C语言中的一种重要调用方式。
(5)引用调用时形参使用变量名,实参用引用名。这种调用具有传址调用的特点:一是提高运行效果,因为只传递地址值。二是被调用函数通过改变形参值可以改变实参值。在C+程序中多用引用调用替代传址调用,使之使用起来简单明了而且容易
(6)C+语言允许设置函数参数的默认值。但在设置时应注意先设置右边的参数,不允许在已设置默认值的参数的右边还有没设置默认值的参数。可设置一个参数的默认值,也可以设置所有参数的默认值。在函数调用中,如果实参没有给出值时,使用形参的默认值,如果实参给定值时,使用实参值而不用默认值。
(7)C+语言中引进了内联函数概念。在编译时,将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换。内联函数定义时在函数头前加关键字 inline。内联函数不允许使用循环和开关语句。关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。
定义在类声明之中的成员函数将自动地成为内联函数

(8)C语言允许函数重载,即允许同一个函数名对应着多个不同的函数实现。进行函数重载时,要求同名函数在参数的个数、类型和顺序上有所区别,以便区别不同的函数实现。
(9)函数允许嵌套调用和递归调用。

/*编程计算某个正整数的阶乘,假定从鍵盘上输入一个数存入变量n中,求n!*/
#include <iostream>
using namespace std;
long int fac(int n);
int main()
{
int n;
cout<<"Input a positive integer:";
cin >>n;
long fa=fac(n);
cout<<n<<"!="<<fa<<endl;
return 0;
}
long int fac(int n)
{
long int p;
if(n==0)
        p=1;
else
p=n*fac(n-1);
return p;
}


(10)C++中作用域的种类有程序级、文件级、类级、函数级和块级。
(11)变量的存储类可分为自动类、寄存器类、外部类和静态类,不同存储类的变量和对象的作用域不同,寿命也不同。
(12)函数的存储类分为内部函数和外部函数。

猜你喜欢

转载自www.cnblogs.com/lovehelenmore/p/10805724.html