C++语言函数基础:
(这部分基础内容也是C语言的基础函数内容)
函数是用函数名来调用执行的具有特定功能的语句块。
为降低编写大程序的复杂度,必须将其分解为较小、较简单的模块。
函数和类是构造C++程序的基本模块。
函数分为:函数声明、函数定义、函数调用
函数声明
声明函数,这通常也称为函数原型。
函数声明告诉编译器函数的存在、它的名称、返回类型以及它接受的参数类型和数量。
这通常放在程序的开始部分,例如在main函数之前。
如果函数定义在调用它的代码之前,那么可以省略这一步。
函数定义
就是编写函数的实际代码。函数定义包括函数返回类型、函数名、参数列表以及函数体
返回类型 函数名(参数列表)//有多个的话用,隔开
{
//函数体
}
eg:
int add(int a, int b)
{
int sum = a + b;
return sum;
}
如果有返回值那返回类型是返回值的数据类型
如果没有返回值那就使用void
函数调用
函数调用语法:
函数名(传入实参值);
#include <stdio.h>
//函数声明
int add(int num1, int num2);
int main() {
// 函数调用
int a = 5;
int b = 10;
int result = add(a, b);
printf("The sum of %d and %d is %d\n", a, b, result);
return 0;
}
// 函数定义
int add(int num1, int num2)
{
int sum = num1 + num2;
return sum;
}
C++函数功能扩充:
1.函数重载
在C++中,函数重载允许我们定义多个同名函数,但每个函数接受不同的参数类型、参数数量或参数顺序。
//举一个简单的例子
// 第一个函数重载版本,接收两个整数参数
int add(int a, int b)
{
return a + b;
}
// 第二个函数重载版本,接收两个浮点数参数
double add(double a, double b)
{
return a + b;
}
函数重载不会减少函数个数,主要是可以增加代码的复用性和可读性。
编译器会根据函数调用时提供的参数来区分应该调用哪个函数。
函数重载的规则基于函数签名(函数签名是指一个函数区别于其他函数的特定标识,它主要包括函数名以及它的参数列表包括参数的类型、顺序和数量)。即使函数返回类型不同,只要参数列表不同,也可以进行重载。
重载函数的参数类型必须足够不同,以便编译器能够区分它们。
例:两个函数如果仅仅是参数顺序不同,则不能构成重载。
2.默认值
默认值,又称缺省值,是指一个属性或参数在被修改之前的初始值。
默认值的作用在于确保变量或参数在使用之前都有一个初始值,避免出现未知的错误或异常,并提高代码的可读性和维护性。
为函数参数提供了默认值,那么在调用函数时可以选择性地传递该参数的值。
如果在调用时未传递某个带有默认值的参数,那么编译器会自动使用默认值。
如果既为参数提供了默认值,又在函数调用时传递了实参,那么实参的值将覆盖默认值。
实参的值将具有更高的优先级,它将被用来执行函数而不是默认值。
int add(int a, int b = 1)//默认值不能使用花括号 {} 来设置
{
return a + b;
}
如果一个函数形参被指定了默认值,那么位于它右侧的所有形参都必须指定默认值。
void func(int a, int b = 0, int c = 0);
// 合法
void func(int a = 0, int b, int c = 0);
// 不合法
3.内联函数
方法:添加修饰词inlink
主要特点:在调用时不是通过函数调用的机制来实现,而是通过将函数体直接插入到调用处,从而避免了频繁的函数压栈、返回等操作,以减少函数调用的开销,提高程序的运行效率。
内联函数通常用于定义类的成员函数,并且只在调用处展开,不会在其他地方产生重复代码,这有助于减少代码膨胀。
inline int add(int a, int b)
{
return a + b;
}
inline 关键字只是向编译器发出一个请求,建议编译器内联该函数。编译器可以选择忽略这个请求,特别是在函数体很大或者复杂的情况下。因此,inline 并不保证函数一定会被内联。
对于一些简单的、频繁使用的、体积较小的函数,使用内联可以显著提高程序执行效率。
4.引用
简单的来说就是一个已存在变量的别名,即它是变量的另一个名字。
引用在声明时必须被初始化,并且一旦初始化后就不能再指向另一个变量。
引用不是指针,引用不能为空,引用一定得初始化,一旦绑定后就不能改变了
引用不占用存储空间,它只是为已存在的变量提供了一个新的访问方式。
左值引用:对变量起别名
数据类型 &引用名{}
右值引用:给常量或者表达式的结果起一个别名
数据类型 &&引用名{}
引用在函数参数和返回值中特别有用,因为它们允许函数直接操作原始数据,而不是数据的副本。
标签:函数,int,基础,C++,add,参数,函数调用,默认值 From: https://blog.csdn.net/2301_80158456/article/details/137017583