函数的学习与总结

函数的学习与总结

经过这半个月的学习,我对C++中的函数有了一个初步的理解。在我的认识中,C++中的函数实际上就是一种针对某种问题的解决方案,本质上就是一种算法。正如数学中一般,我们会为了解决某个问题写出解析式,然后向解析式中带值。在C++中,我们也需要为解决某个问题写出算法,然后向里面带参数。

#include<iostream>
using namespace std;
int f(int&);函数原型,定义函数名;
int main()
{
    int n;
    cin>>n;此处n有具体值,为实参;
    f(n);调用函数;
    cout<<n;
    return 0;
}
int f(int &m)函数定义,此处m为形参,传参方式为引用传值;
{
    int x,t=0,j;
    j=1;
    while(m/j!=0)
    {
        x=(m/j)%10;
        t=10*t+x;
        j=10*j;
    }
    m=t;

}

在函数中参数分为形参与实参,二者都为变量。其中形参便犹如数学中f(x)=2x+1中的x,而实参则是我们向解析式中带入的具体值。函数中实参向形参传递方式主要有三种,分别是按值传递、地址传递与引用传递。传递方式可根据形参判断。

按值传递仅仅是将实参的数据值传递给形参,在被调用的函数中形参可改变,但对实参无影响。定义方式可为int f(int t);

地址传递是将实参的地址值传递给形参,这是形参是指针,即让形参的指针指向实参地址,这里不再是将实参的一个副本拷贝给形参,而是让形参直接指向实参。这时调用函数中形参的变化将影响实参的改变。定义方式可为int f(int *p);

引用传递可理解为给实参取一个别名,如果以引用为参数,则既可以使得对形参的任何操作都能改变相应的数据,又使得函数调用显得方便、自然、更省空间。这是最简便的方式。定义方式可为int f(int &m)。

注意:再说明变量中用"*"是定义指针变量,用"&"为引用别名;

在正常语句中用"*"代表取指针变量所指向的目标变量,用"&"代表取地址。

对于一般函数来说,我们一般在主函数中调用,在函数中可调用其它函数却不调用其本身;而对于递归函数来说,我们可以直接或间接地调用自身函数。其特点为将大型复杂问题转化为规模较小的问题。例如:求n!

#include<iostream>

using namespace std;

long fact(int n)

{

 if(n==0) return 1;递归边界(递归终止情况)

 else return n*fact(n-1);递归式(递归调用)

}

int main()

{

   int n;

   cout<<"Enter n(>=0):";

   cin>>n;

   cout<<n<<"!="<<fact(n)<<endl;

}

感悟:经过一段时间的学习,我认为可以将函数看作一种工具。当我们在解决某个问题时,可以将其分解为几部分,通过函数分别解决,最终解决问题。也可将其用作某种功能的实现,通过自己编写的算法,完成这种功能。总而言之,函数的运用可以帮助我们更为简便的解决问题!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值