C++学习(2)

55 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天。

一、函数的调用

函数就是将一段代码进行封装然后方便调用。若干个函数可以作为若干个模块进行调用。提高代码的阅读效率。 在C语言中也就是函数封装,所以这里就不写了。

二、函数的值传递

这里记录下,因为这里会涉及到一个问题点就是,传递值的时候,是将实际参数传递给形参,形参改变而实际参数没有改变并不会影响对应的值。 我们直接看例子

#include <iostream>
using namespace std;
/*定义一个交换函数*/
void swap(int a, int b)
{
	int temp;

	cout << "swap交换前的值" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	temp = a;
	a = b;
	b = temp;

	cout << "swap交换后的值" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

}


int main()
{
	int c = 5;
	int d = 10;

	cout << "main交换前的值" << endl;
	cout << "c = " << c << endl;
	cout << "d = " << d << endl;

	swap(c, d);

	cout << "main交换后的值" << endl;
	cout << "c = " << c << endl;
	cout << "d = " << d << endl;

	system("pause");
	return 0;
}

在这里插入图片描述

可以看到在swap该函数里面,我们的值是改变了的,但是在main的函数里面,交换前后的值并没有变。 原因就是我们的实际参数c和d没有进行任何操作,我们只是改变了形参a和b,所以c和d没有改变。

三、函数的常见样式

一共有4中类型 1、无参数 无返回值 2、无参数 有返回值 3、有参数 无返回值 4、 有参数 有返回值

#include <iostream>
using namespace std;

/*1、无参数 无返回值*/
void test_1()
{
	cout << "无参数 无返回值函数" << endl;
}

/*2、无参数 有返回值*/
int test_2()
{
	cout << "无参数 有返回值函数" << endl;
	return 0;
}

/*3、有参数 无返回值*/

void test_3(int a, int b)
{
	int sum = a + b;
	cout << "有参数 无返回值函数 sum = " << sum << endl;
}

/*4、 有参数 有返回值*/

int test_4(int a, int b)
{
	int sum = a + b;
	cout << "有参数 有返回值函数 sum = " << sum << endl;
	return sum;
}

int main()
{
	int c = 5;
	int d = 10;

	test_1();
	test_2();
	test_3(c, d);
	test_4(c, d);

	system("pause");
	return 0;
}

在这里插入图片描述

这里都是最简单的例子,在真正的代码中,会通过返回值传递参数来对函数进行判断,然后打印不同的信息,达到不同的目的。也就是后期的回调函数。

四、函数的声明

函数可以多次声明,但是函数的定义只有一个。

#include <iostream>
using namespace std;

/*函数的定义*/
int max(int a, int b)
{
	return a > b ? a : b; //三目运算
}

/*函数的声明*/
int max(int a, int b);
int max(int c, int d);
int max(int e, int f);

/*主函数*/
int main()
{
	int c = 5;
	int d = 10;

	cout << max(c, d) << endl;

	system("pause");
	return 0;
}

为什么要有声明,因为有些函数可能在main函数后面,函数从上到下执行,如果我们在main函数后面进行函数的定义,在main函数前面又不进行声明,他会报错,提示找不到函数。而声明就是告诉main函数,我有这个东西,你先执行不用报错,后面可以把定义的内容添加进来,而且哦我们可以多次声明,但是我们不能多次定义。 在标准代码中,我们都会把定义函数写在前面,main函数写在后面,规范也为了减少一些报错。

五、函数的头文件

就是将封装的函数写在.h文件里面。这样就可以减少.cpp文件的代码量,具体用法就不说了,和C一样,包含头文件即可