首页 > 编程语言 >C++基础——函数

C++基础——函数

时间:2024-04-07 22:30:23浏览次数:23  
标签:函数 int 基础 C++ add 参数 函数调用 默认值

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

相关文章

  • Django框架之Ajax基础
    一、JSON知识回顾1、什么是JSONJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,通常用于在网络之间传输数据。它基于JavaScript的语法,但是独立于编程语言,因此几乎所有编程语言都支持解析和生成JSON数据。JSON数据采用键值对的形式来组织数据,其中键是字符串,值可以是......
  • C++笔记打卡第五天(指针、结构体)
    1.指针inta=10;//指针定义的语法:数据类型*指针变量名int*p;p=&a;//也可以直接定义为:int*p=&acout<<&a<<endl;cout<<p<<endl;//可以通过解引用的方式来找到指针指向的内存(可以修改a的值)*p=1000;cout<<*p<<endl;cout<<a<&......
  • Pytorch张量的数学运算:向量基础运算
    文章目录一、简单运算二、广播运算1.广播的基本规则2.广播操作的例子三、运算函数参考:与凤行  张量的数学运算是深度学习和科学计算中的基础。张量可以被视为一个多维数组,其在数学和物理学中有广泛的应用。这些运算包括但不限于加法、减法、乘法、除法、内积、......
  • C++笔记打卡第六天(通讯录管理系统)
    1.结构体案例1每名老师带领5个学生,总共有3个老师。设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员。学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值。最终打印出老师数据以及老师所带学生数据。#......
  • 机器学习基础の学习笔记
    一.KNN算法   KNN(K-NearestNeighbor)最邻近分类算法是数据挖掘分类技术中最简单的算法之一,其指导思想是”近朱者赤,近墨者黑“,即由你的邻居来推断出你的类别。   实现原理:为了判断未知样本的类别,以所有已知类别的样本作为参照,计算未知样本与所有已知样本的距离,从中选......
  • C++ Break、Continue 和 数组操作详解
    C++Break和Continuebreak语句还可以用来跳出循环。在以下示例中,当i等于4时跳出循环:for(inti=0;i<10;i++){if(i==4){break;}cout<<i<<"\n";}C++Continue以下示例跳过了值为4的情况:for(inti=0;i<10;i++){if(i==4)......
  • 0403_C基础5
    练习1:1.循环输入n个元素,计算最大差值,最小和,最大和(不允许使用排序)最大差:最大值-最小值最小和:最小值+第二小值最大和:最大值+第二大值程序:#include<stdio.h>#include<string.h>#include<stdlib.h>//定义int类型最大值以及最小值#defineINT_MAX2147483647#de......
  • 0407_C基础6
    练习1:输入m行n列得二维数组,输出每一行的和,以及每一列的和程序:#include<stdio.h>#include<string.h>#include<stdlib.h>intmain(intargc,constchar*argv[]){ intm,n; printf("请输入行数:"); scanf("%d",&m); printf("请输入列数:");......
  • XML文档节点导航与选择指南 | XPath基础知识
    XPath(XMLPathLanguage)是XSLT标准的主要组成部分。它用于在XML文档中浏览元素和属性,提供了一种强大的定位和选择节点的方式。XPath的基本特点代表XML路径语言:XPath是一种用于在XML文档中导航和选择节点的语言。路径样式语法:XPath使用路径表达式的“路径样式”语......
  • C++中的类与对象丶this指针和构造函数与析构函数 (一)
    C++中的类与对象和this指针(一)一丶类与对象1.类的引入2.类的实例化3.类的类型的大小I.计算类或对象的大小II.规定空类占一个字节大小4.类中的访问权限5.类中的构造函数和析构函数I.构造函数II.析构函数二丶this指针1.this指针的引出2.this指针的特性3.th......