C++基础(17)函数类型

243 阅读2分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第17篇文章,点击查看活动详情

函数类型

用户定义函数

用户定义函数是用户/客户定义的代码块,专门定制以降低大型程序的复杂性。它们也通常被称为“量身定制的功能”,其构建只是为了满足用户面临问题的条件,同时降低整个程序的复杂性。

库函数 

库函数也称为“内置函数”。这些函数是已定义的编译器包的一部分,由具有特殊和不同含义的特殊函数组成。内置函数为我们提供了一个优势,因为我们可以直接使用它们而无需定义它们,而在用户定义的函数中,我们必须在使用它们之前声明和定义一个函数。 
例如:  sqrt()、setw()、strcat() 等。

参数传递给函数

传递给函数的参数称为实际参数。例如,在下面的程序中,5 和 10 是实际参数。 
函数接收到的参数称为形。例如,在上面的程序中 x 和 y 是形式参数。

有两种最流行的参数传递方式:

  1. 按值传递:在这种参数传递方法中,实际参数的值被复制到函数的形参中,两种类型的参数存储在不同的内存位置。因此,函数内部所做的任何更改都不会反映在调用者的实际参数中。 
  2. 引用传递: 实参和形参引用相同的位置,因此函数内部所做的任何更改实际上都会反映在调用者的实参中。

功能定义

通过引用传递用于未使用函数 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++的蒟蒻,关注我,我们一起加油。