第六章 函数

来源:互联网 发布:网线质量测试软件 编辑:程序博客网 时间:2024/05/29 12:48

函数的声明

调用一个函数前必须先声明函数的返回值类型和参数类型
如果被调函数的定义在主调函数之前,可以不必加声明。

    #include <iostream>    using namespace std;    void ShowMessage(); //函数声明语句    void ShowAge(); //函数声明语句    void ShowIndex(); //函数声明语句    void main()    {        ShowMessage(); //函数调用语句        ShowAge(); //函数调用语句        ShowIndex(); //函数调用语句    }    void ShowMessage()    {        cout << "HelloWorld!" << endl;    }    void ShowAge()    {        int iAge=23;        cout << "age is :" << iAge << endl;    }    void ShowIndex()    {        int iIndex=10;        cout << "Index is :" << iIndex << endl;    }

函数调用

传值调用

以下程序并不能交换x y的值,因为调用swap函数时复制了变量x和y的值,而不是变量本身

    #include<iostream>    using namespace std;    void swap(int a,int b)    {        int tmp;        tmp=a;        a=b;        b=tmp;    }        void main()    {        int x,y;        cout << "输入两个数" << endl;        cin >> x;        cin >> y;    if(x<y)        swap(x,y);    cout << "x=" << x <<endl;    cout << "y=" << y <<endl;}

嵌套调用

在自定义函数中调用其他自定义函数,这种调用称为嵌套调用
在嵌套调用时要注意,不要在函数体内定义函数

递归调用

在一个函数中直接或间接地调用函数本身

重载函数

内联函数

变量作用于域

局部变量

函数体内定义的变量
在函数调用时创建,在函数调用结束后销毁并释放

全局变量

在函数体外定义的变量
在程序开始时创建并分配空间,在程序结束时释放内存并销毁

变量的存储类别

存储类型:
自动变量:auto
寄存器变量:register
外部变量:extern
静态变量:static

auto变量

static变量

register变量

extern变量

默认参数的函数

       void print(int value, int base=10);       调用print(20)  等价于 print(20, 10)

对参数默认值的指定只有在函数声明处有意义
在不同的源文件中,可以对函数的参数指定不同的默认值
在函数调用时,若某个参数省略,则其后的参数皆应省略而取其缺省值

可变参数

void OutputInfo(int num,...)

参数列表中有一个省略号“”…“”
使用可变参数需要引用STDARGH头文件,以及va_start,va_arg,va_end这三个宏

0 0
原创粉丝点击