文章目录
- 一、函数概述
- 1、声明与定义
- 2、函数传参
- 2.1、传递值
- 2.2、传递引用
- 3、函数指针
- 3.1、定义
- 3.2、函数指针声明
前言:
在C++编程语言中,函数是执行特定任务或计算值的独立代码块。它们是构建程序逻辑、实现模块化和代码重用的基石。通过函数,开发者可以将复杂的程序分解为更小、更易管理的部分,从而提高代码的可读性、可维护性和可测试性。
一、函数概述
1、声明与定义
在C++中,函数通过函数定义来创建,其语法包括返回类型、函数名、参数列表(可选)和函数体。例如:
int add(int a, int b) { return a + b;
}
2、函数传参
C++中函数传参方式有两种:传递值与传递引用,如下:
2.1、传递值
传值传递是最基本也最常用的参数传递方式。在这种方式下,函数的形参是实参的一个副本。这意味着在函数内部对形参的任何修改都不会影响到实参。例如:
void func(int value) { value = 10; // 修改形参,不会影响实参
} int main() { int x = 5; func(x); std::cout << x; // 输出5,实参未被修改 return 0;
}
2.2、传递引用
传引用传递允许函数直接访问和修改实参本身,而不是它的副本。这是通过传递实参的引用来实现的。例如:
void func(int& ref) { ref = 10; // 修改形参,实参也会被修改
} int main() { int x = 5; func(x); std::cout << x; // 输出10,实参被修改 return 0;
}
3、函数指针
3.1、定义
函数指针是指向函数的指针变量。 因此函数指针本质上是一个指针变量,只不过该指针变量指向函数。C/C++中,每一个函数都有一个入口地址,函数指针就指向函数的入口地址,可以通过函数指针来调用函数。例如:
int func(int x, int y) {cout << x << ":" << y << endl;return 0;
}int main() {// pfnFunc保存的就是func函数地址,pfnFunc与func值是一样的int (*pfnFunc)(int x,int y) = func;printf("%p\n", pfnFunc);printf("%p\n", func);return 0;
}
输出结果
00401350
00401350Process returned 0 (0x0) execution time : 0.069 s
Press any key to continue.
3.2、函数指针声明
函数指针的声明方法为:返回值类型 ( * 指针变量名) ([形参列表])。常用的声明函数指针的方式有下面两种
// 方法一:声明一种函数指针类型(该方法比较常用)
typedef int (*TEST_FUNC)(int, int);int func(int x, int y) {cout << x << ":" << y << endl;return 0;
}int main() {TEST_FUNC cb = func;(cb)(10, 20);// 方法二:定义一个函数指针变量int (*pfnFunc)(int x,int y) = func;// 通过指针调用函数pfnFunc(10, 20);(*pfnFunc)(10, 20);return 0;
}
注意: 通过函数指针调用函数时,(*pfnFunc)与pfnFunc等价。