一、函数

Ⅰ. 定义

定义方式:

数据类型 函数名(形参)
{
    函数体;
}

int add(int a,int b)
{
    return a+b;
}
  1. 函数的数据类型是函数的返回值类型,若类型为 voidvoid 则无返回值。
  2. 形参可以是空的,但圆括号必须存在。

Ⅱ. 函数的声明

方式:

数据类型 函数名(形参);

int add(int a,int b);   //或者int add(int,int);

若函数在调用之前定义,则无需声明。

Ⅲ. 函数的调用

① 传值调用

方式:

int x, y;

void swap(int a, int b)
{
    int t;
    t = a, a = b, b = t;
    return;
}

int main()
{
    x = 1, y = 2;
    swap(x, y);
    printf("%d %d", x, y);
    return 0;
}

输出:1 2

传值调用时,将全局变量 x,yx,y 的值赋予局部变量 a,ba,b ,虽函数内交换了 a,ba,b 的值但 x,yx,y 的值并未被影响。

② 传址调用

方式:

int x, y;

void swap(int &a, int &b)
{
    int t;
    t = a, a = b, b = t;
    return;
}

int main()
{
    x = 1, y = 2;
    swap(x, y);
    printf("%d %d", x, y);
    return 0;
}

输出:2 1

与①中相比,函数的形参变成了指针,此时传入局部变量 a,ba,b 的是全局变量 x,yx,y 的内存地址,进行交换时直接对内存地址里的内容造成影响,相当于交换 x,yx,y 的值。