[C++]函数学习总结

本文章分为知识点、例子和心得

基础知识:

  • 引用:类型名 &引用名=某变量名;  (例:int &r=n; r即为n,n即为r)

       ——某个变量的引用,和这个变量是一回事,相当于该变量的一个别名

  • 指针变量:类型标识符 *变量名;  (例:int *i_point; )

      ——其内容为地址(存储位置)的变量,简称指针。它所指向的地址上存放的变量称作目标变量

     注意:一个指针变量只能指向同一类型的变量。即整型指针变量只能指向整型数据的地址,而不能放其它类型数据的地址。

例子:

例1:指针初步理解

    int i=5;
    int *i_point=&i;
    cout<<i_point<<endl;//结果1
    cout<<*i_point<<endl;//结果2
    i=6;
    cout<<i_point<<endl;//结果3
    cout<<*i_point<<endl;//结果4

        运行结果:

        

        此时,i_point中储存的是内存地址,所以运行后结果1为i的内存地址,结果2为i的值,也就是5。

        改变i的值,内存地址不变,所以结果3还是i的内存地址不变,但是结果4变更为i最新的值6。

例2:判断素数函数

int prime(int l)
{
    int i;
    for(i=2;i<=sqrt(l);i++)//注意需要使用cmath
    {
        if(l%i==0)
        {
            return 0;
        }
    }
    return 1;
}

例3:最大公约数函数

     欧几里德算法:(用递归函数

#include<iostream>
using namespace std;
int gcd(int m,int n)
{
    if (n==0) return m;
    else return gcd(n,m%n);
}
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<gcd(a,b);
}

    非递归实现:

int zdgys(int n,int m)
{
    int c;
    while(m!=0)
    {
        c=n%m;
        n=m;
        m=c;
    }
    return n;
}

例4:最小公倍数函数

最小公倍数,就是两数的乘积除以它们两个的最大公约数,就是它们的最小公倍数。

或者:

int zxgbs(int n,int m)
{
    for(int i=n;i<=n*m;i++)
    {
        if(i%n==0&&i%m==0)
        {
            return i;
        }
    }
}

心得感悟:

学到函数,程序开始分块了,程序更有条理,对我的要求也更改了,等学到递归就变得迷茫了,有些题只有一点思路,现在还在继续摸索,积累经验。

总之,

递归很难!

递归很难!

递归很难!



猜你喜欢

转载自blog.csdn.net/MagicBiao/article/details/79596538