C++中函数的优点

函数有很多优点,但这里主要介绍以下两点:

1. 提高代码可重用性

通过在C++中创建函数,可以调用函数多次。 所以实现相同的功能不需要一遍又一遍地编写相同的代码。

2. 代码优化

函数能使代码优化,我们不需要写很多代码。

 

 

函数类型

C++编程语言中有两种类型的函数:

1.库函数:

   是在C++头文件中声明的函数,如:ceil(x)cos(x)exp(x)等。

2. 用户定义的函数:

     是由C++程序员创建的函数,以便他/她可以多次使用它。 它降低了大程序的复杂性并优化了代码。



在C++中通过值调用

在值调用中,不修改原始值。


在值调用中,传递给函数的值由函数参数本地存储在堆栈存储器位置。 如果更改函数参数的值,则仅更改当前函数的值,函数内修改的参数值不会反映到函数的外部。 它不会改变调用方法中的变量的值

在C++中通过引用调用

在引用调用中,原始值会被修改,因为我们是通过引用(地址)来调用的。

这里,值的地址在函数中传递,因此实际和形式参数共享相同的地址空间。 因此,在函数内部改变的值会反映在函数内部以及外部。

在C++中通过值调用和通过引用调用的区别

序号通过值调用通过引用调用
1 将值的副本传递给函数 将值的地址传递给函数
2 在函数内部进行的更改不会反映在函数外部 在函数内部进行的更改也反映在函数外部
3 实际和形式参数将在不同的内存位置创建 实际和形式参数将在同一内存位置创建


 
 

C++递归

当函数在同一个函数内调用时,它被称为C++中的递归。 调用相同函数的函数(函数自已调用自已)称为递归函数。
在函数调用之后调用自身并且不执行任何任务的函数称为尾递归。 在尾递归中,我们通常使用return语句调用相同的函数。

使用C++语言中的递归来打印一个数的阶乘。
 1 #include<iostream>  
 2 using namespace std;    
 3 int main()  
 4 {  
 5     int factorial(int);  
 6     int fact,value;  
 7     cout<<"Enter any number: ";  
 8     cin>>value;  
 9     fact=factorial(value);  
10     cout<<"Factorial of a number is: "<<fact<<endl;  
11     return 0;  
12 }  
13 
14 int factorial(int n)  
15 {  
16     if(n<0)  
17         return(-1); /*Wrong value*/    
18     if(n==0)  
19         return(1);  /*Terminating condition*/  
20     else  
21     {  
22         return(n*factorial(n-1));      
23     }  
24 }

上面代码执行结果如下所示 -

1 Enter any number: 5
2 Factorial of a number is: 120

 

 

 

C++存储类

 

存储类用于定义C++程序中变量和/或函数的生命周期和可见性。

寿命是指变量保持活动的时间段,可见性是指可访问变量的程序的模块。

有五种类型的存储类,可以在C++程序中使用

  • 自动(Automatic)
  • 寄存器(Register)
  • 静态(Static)
  • 外部(External)
  • 可变(Mutable)

 

 静态存储类

静态变量只初始化一次,直到程序结束。 它保留可在多个函数之间调用的值。
静态变量由编译器提供的一个默认值:0

外部存储类

extern变量对所有程序都可见。 如果两个或多个文件共享相同的变量或函数,则使用它。