【教程】C++语言基础学习笔记(八)——函数

文首标志
写在前面:
如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!


【C++语言基础学习】系列文章

第一章 《项目与程序结构》
第二章 《数据类型》
第三章 《运算符》
第四章 《流程控制》
第五章 《Vector向量》
第六章 《String字符串》
第七章 《Array数组》
第八章 《函数》
第九章 《指针》
第十章 《结构体》


文章目录

  • 【C++语言基础学习】系列文章
  • 一、函数定义
  • 二、函数值传递
  • 三、函数常见样式


一、函数定义

在C++中,函数是一段可重复使用的代码块,用于执行特定的任务。它可以接受参数并返回一个值。其作用实质上是将一段经常使用的代码封装起来,减少重复代码。
而对于函数的定义,主要有五个步骤。

  1. 返回值类型
  2. 函数名
  3. 参数表列
  4. 函数体语句
  5. return表达式

其语法如下。

返回值类型 函数名(参数列表)
{
	函数体语句

	return表达式
}

其中,以下是函数的声明部分。

返回值类型 函数名(参数列表);

函数声明是为了告诉编译器函数名称以及如何调用函数。而相比于函数的完整定义,函数声明可以声明多次,定义则只能有一次。
以下是简单的示例。

int add(int num1, int num2)
{
	int sum = num1 + num2;
	return sum;
}

这里就是定义返回值类型为整型,函数名为add,设置了num1num2两个整型参数。在函数体语句中,定义一个整型变量sum承接num1num2相加的和,最后返回变量sum内的值。
函数调用方法如下所示。

add(1, 2);

返回结果如下。

3

值得注意的是,在定义函数时括号内的参数叫做形参(形式参数),而调用函数时括号内实际输入的参数则被称为实参(实际参数)。

二、函数值传递

在C++中,函数参数可以通过值传递的方式进行传递。值传递是指将参数的值复制到函数的形参中,函数在执行期间使用这个副本来处理数据。简单来说,就是函数在调用时实参将数值传入给形参。而在值传递时,如果形参中发生任何改变,并不会影响实参。
具体示例如下。

void swap(int num1, int num2)
{
    cout << "交换前:" << endl;
    cout << "num1:" << num1 << endl;
    cout << "num2:" << num2 << endl;
    int temp = num1;
    num1 = num2;
    num2 = temp;
    cout << "交换前:" << endl;
    cout << "num1:" << num1 << endl;
    cout << "num2:" << num2 << endl;
}

首先定义一个交换函数swap(num1, num2),从函数体内部语句可以看到其作用是将输入的参数内容互换。另外,当不需要返回值时,可以使用void的返回值类型,return语句也可以省略,就如同这个定义的函数一样。

int a = 10;
int b = 20;
cout << "交换前a = " << a << endl;
cout << "交换前b = " << b << endl;
swap(a, b);
cout << "交换后a = " << a << endl;
cout << "交换后b = " << b << endl;

接着,定义变量ab并赋值,在用std::cout对象输出一下交换前和交换后作为实参的ab的值。
返回结果如下。

交换前a = 10
交换前b = 20
交换前:
num1:10
num2:20
交换前:
num1:20
num2:10
交换后a = 10
交换后b = 20

从输出结果可以看到,在函数交换功能使用后,函数的形参num1num2改变了,但作为实参的ab却并没有改变,这就是值传递令形参改变却不会改变实参。

三、函数常见样式

常见函数样式有4种。

  1. 无参数无返回值
  2. 有参数无返回值
  3. 无参数有返回值
  4. 有参数有返回值

以下是简单的示例。

#include 

using namespace std;

// 1. 无参数无返回值
void test1()
{
    cout << "this is test1" << endl;
}
// 2. 有参数无返回值
void test2(int a)
{
    cout << "this is test2 a = " << a << endl;
}
// 3. 无参数有返回值
int test3()
{
    cout << "this is test3" << endl;
    return 1000;
}
// 4. 有参数有返回值
int test4(int a)
{
    cout << "this is test4 a = " << a << endl;
    return 1000;
}

int main()
{
    // 无参无返函数调用
    test1();
    // 有参无返函数调用
    test2(23);
    // 无参有返函数调用
    int num1 = test3();
    cout << "test3 return:" << num1 << endl;
    // 有参有返函数调用
    int num2 = test4(23);
    cout << "test4 return:" << num2 << endl;
}

返回值结果如下。

this is test1
this is test2 a = 23
this is test3
test3 return:1000
this is test4 a = 23
test4 return:1000


我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!

文末标志

你可能感兴趣的:(【语言】C++,c++,学习,笔记)