函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
函数由函数头
和函数体
组成,函数头包含:返回类型,函数名称
和参数
,void修饰的函数可以无返回值
函数参数:函数使用参数,必须声明接受参数值的变量,变量称为函数的形式参数,进入函数创建,退出函数销毁。
void main_func(int x1, int x2)
{
do something;
}
以上:void为返回类型,main_func为函数名称,x1和x2为参数,int为参数的类型声明,{}内函数体
函数参数(3种):
- 1、传值调用:
该方法把参数的实际值赋值给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。- 2、引用调用:
参数的引用赋值给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。- 3、指针调用:
参数的地址赋值给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
例如:
#include <iostream> #include <stdio.h> using namespace std; /* 4、函数 函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际体。 函数由函数头和函数体组成,函数头包含:返回类型,函数名称和参数,void修饰的>函数可以无返回值 函数参数: 函数使用参数,必须声明接受参数值的变量,变量称为函数的形式参数,进>入函数创建,退出函数销毁。 三种调用方式:传值调用、指针调用和引用调用 传值调用:该方法把参数的实际值赋值给函数的形式参数。在这种情>况下,修改函数内的形式参数对实际参数没有影响。 指针调用:参数的地址赋值给形式参数。在函数内,该地址用于访问>调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 引用调用:参数的引用赋值给形式参数。在函数内,该引用用于访问>调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 */ int a = 50, b = 100; int &o = a, &w = b; int *p = &a, *q = &b; extern void swap_num1(int, int); extern void swap_num2(int&, int&); extern void swap_num3(int*, int*); int main() { swap_num1(a, b); // 传值调用,a和b值不会改变 cout << "a=" << a << ",b=" << b << endl; swap_num2(o, w); // 引用调用,a和b的值会交换 cout << "a=" << a << ",b=" << b << endl; swap_num3(p, q); // 指针调用,a和b的值会交换 cout << "a=" << a << ",b=" << b << endl; return 0; } void swap_num1(int x, int y) // 传值参数,原值不会被改变 { int t; t = x, x = y, y = t; } void swap_num2(int& x, int& y) // 引用参数,原值会被改变 { int t; t = x, x = y, y = t; } void swap_num3(int* x, int* y) // 指针参数,原值会被改变 { int t; t = *x, *x = *y, *y = t; }
运行结果为:
a=50,b=100
a=100,b=50
a=50,b=100
网友评论