• 3.C++函数(C++学习笔记)


    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变量对所有程序都可见。 如果两个或多个文件共享相同的变量或函数,则使用它。





     

  • 相关阅读:
    javascript-类型、值和变量
    词法结构
    前端js保存页面为图片下载到本地
    js生成带log的二维码(qrcodejs)
    工具函数
    css 水平垂直居中
    vue中的keep-alive
    vuex 的使用
    Spring源码解析
    Spring源码解析
  • 原文地址:https://www.cnblogs.com/jayYuan/p/14507023.html
Copyright © 2020-2023  润新知