上嵌学习笔记我的编程学习专辑

函数

2017-03-26  本文已影响10人  十年L_c2c6

函数的学习不得不说还是挺好用的,使代码的编写更加清晰。不管别人如何,还是得做好自己的学习总结。

什么是函数,为什么要使用函数?

C语言中对函数的分类,下面来简单总结一下。

有无返回值参数就不多说了。void main 无返回值,不过老师不建议使用无返回值的函数,具体原因自己也不太清楚,待会可以百度一下;int main 有返回值。

形式参数和实际参数

函数的返回值

函数的返回值只能通过return语句返回主调函数
return 语句的一般形式为:
return 表达式;或 return (表达式);

函数的调用

在程序中是通过对函数的调用来执行函数体的
C语言中函数调用的一般形式
函数名 (实际参数表) //无参函数则无实际参数,如果有多个参数则用逗号隔开。

int sum(int *a,int n)
    {
        int sum=0;
        int i;
        for (i = 0; i < n; ++i)
        {
            sum+=a[i];
        }
        return sum;
    }
int main(int argc, char const *argv[])
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int s=0;
    s=sum(a,10);
    printf("累加结果为:%d\n",s );
    return 0;
}

函数的调用还是挺好用的,使函数的结构更加清晰,避免出错。

被调函数的声明和函数原型:

C语言中规定以下几种情况可以省去声明;

1:被调函数的返回值是整型或字符型,可以不对被调函数声明;
2:被调函数声明在主调函数之前
3:在所有函数之前预先说明了各个函数的类型
4:对库函数的调用不需要再做说明,但是必须把该函数的头文件用include命令包含。

函数的嵌套调用:

函数的递归调用:

long jiecheng(int n)
{
    long ret = -1;
    if(n<0)
        printf("n<0,input error\n");
    else if(n==0||n==1)
        ret = 1;
    else
        ret = jiecheng(n-1)*n;
}
int main()
{
    int n;
    long y;
    printf("input a intrager number:\n");
    scanf("%d",&n);
    y=jicheng(n);
    printf("%d!=%ld\n",n,y);
    return 0;
}

这是一个求阶层的问题,其中使用到了函数的递归调用。其中的ret=jieceng(n-1)*n这里。

数组作为函数的参数

数组可以作为函数的参数使用,进行数据传送。数组作为函数参数有两种形式,一种是把数组元素作为实参使用;另一种是把数组名作为函数的形参和实参使用。

数组作为函数的参数

局部变量和全局变量

*局部变量会屏蔽全局变量。

变量的存储类别:

static声明局部变量

上一篇下一篇

猜你喜欢

热点阅读