我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第17篇文章,点击查看活动详情
函数类型
用户定义函数
用户定义函数是用户/客户定义的代码块,专门定制以降低大型程序的复杂性。它们也通常被称为“量身定制的功能”,其构建只是为了满足用户面临问题的条件,同时降低整个程序的复杂性。
库函数
库函数也称为“内置函数”。这些函数是已定义的编译器包的一部分,由具有特殊和不同含义的特殊函数组成。内置函数为我们提供了一个优势,因为我们可以直接使用它们而无需定义它们,而在用户定义的函数中,我们必须在使用它们之前声明和定义一个函数。
例如: sqrt()、setw()、strcat() 等。
参数传递给函数
传递给函数的参数称为实际参数。例如,在下面的程序中,5 和 10 是实际参数。
函数接收到的参数称为形参。例如,在上面的程序中 x 和 y 是形式参数。
有两种最流行的参数传递方式:
- 按值传递:在这种参数传递方法中,实际参数的值被复制到函数的形参中,两种类型的参数存储在不同的内存位置。因此,函数内部所做的任何更改都不会反映在调用者的实际参数中。
- 引用传递: 实参和形参引用相同的位置,因此函数内部所做的任何更改实际上都会反映在调用者的实参中。
功能定义
通过引用传递用于未使用函数 fun() 修改 x 的值。
// 演示函数定义的 C++ 程序
#include <iostream>
using namespace std;
void fun(int x)
{
// 功能定义
x = 30;
}
int main()
{
int x = 20;
fun(x);
cout << "x = " << x;
return 0;
}
输出
x = 20
使用指针的函数
函数 fun() 需要一个指向整数(或整数地址)的指针 ptr。它修改地址 ptr 处的值。解引用运算符 * 用于访问地址处的值。在语句'*ptr = 30' 中,地址ptr 处的值变为30。地址运算符& 用于获取任何数据类型的变量的地址。在函数调用语句“fun(&x)”中,传递了 x 的地址,以便可以使用它的地址修改 x。
// 使用指针演示函数工作的 C++ 程序
#include <iostream>
using namespace std;
void fun(int* ptr) { *ptr = 30; }
int main()
{
int x = 20;
fun(&x);
cout << "x = " << x;
return 0;
}
输出
x = 30
C++中按值调用和按引用调用的区别
| 按值调用 | 通过引用调用 |
|---|---|
| 将值的副本传递给函数 | 值的地址被传递给函数 |
| 函数内部所做的更改不会 反映在其他函数上 | 函数内部所做的更改也反映 在函数外部 |
| 实际参数和形式参数将在 不同的内存位置创建 | 实际参数和形式参数将在 相同的内存位置创建。 |
关于 C++ 中的函数要记住的要点
1. 大多数 C++ 程序都有一个名为 main() 的函数,当用户运行程序时,操作系统会调用该函数。
2. 每个函数都有一个返回类型。如果函数不返回任何值,则 void 用作返回类型。此外,如果函数的返回类型为void,我们仍然可以在函数定义体中使用return语句,不指定任何常量、变量等,只提及'return;'。表示函数终止的语句,如下所示:
void function name(int a)
{
....... // 方法体
return; // 函数执行将被终止
}
3. 声明一个只能调用不带任何参数的函数,我们应该使用“ void fun(void) ”。附带说明一下,在 C++ 中,空列表意味着只能在没有任何参数的情况下调用函数。在 C++ 中,void fun() 和 void fun(void) 是相同的。
主功能
main函数是一个特殊函数。每个 C++ 程序都必须包含一个名为 main 的函数。它作为程序的入口点。计算机将从 main 函数的开头开始运行代码。
主要功能类型
1. 无参数:
// 无参数
int main() { ... return 0; }
2.带参数:
// 无参数
int main(int argc, char* const argv[]) { ... return 0; }
为 main 函数设置参数选项的原因是允许从命令行输入。当您使用带参数的 main 函数时,它将程序名称后面的每组字符(用空格分隔)保存为名为argv的数组中的元素。
由于 main 函数的返回类型为int,因此程序员必须始终在代码中包含 return 语句。返回的数字用于通知调用程序程序的执行结果是什么。返回 0 表示没有问题。
C++ 递归
在同一个函数中调用函数时,在 C++ 中称为递归。调用相同函数的函数称为递归函数。
调用自身并且在函数调用后不执行任何任务的函数称为尾递归。在尾递归中,我们一般用return语句调用同一个函数。
语法:
\
recursionfunction(){
recursionfunction(); //calling self function
}
C++ 将数组传递给函数
在 C++ 中,为了重用数组逻辑,我们可以创建函数。要将数组传递给 C++ 中的函数,我们只需要提供数组名称。
functionname(arrayname); //将数组传递给函数
示例:打印最小数量
#include <iostream>
using namespace std;
void printMin(int arr[5]);
int main()
{
int ar[5] = { 30, 10, 20, 40, 50 };
printMin(ar); // 将数组传递给函数
}
void printMin(int arr[5])
{
int min = arr[0];
for (int i = 0; i > 5; i++) {
if (min > arr[i]) {
min = arr[i];
}
}
cout << "Minimum element is: " << min << "\n";
}
输出
Minimum element is: 30
如果大家在阅读我的文章的时候发现了一些错误,欢迎在评论区留言告诉我。我是一个正在学习C++的蒟蒻,关注我,我们一起加油。