• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-07-27)  C基础 编程基础 |   6 条评论  115 
    文章评分 1 次,平均分 5.0

    函数:
    分为库函数和自定义函数
    #include <stdio.h>//文件包含编译预处理命令,包含所用到的库函数(例如:scanf)
    int test(int a);//这里是声明函数
    int a, b, sum=0;
    int main(){
    printf("Enter two numbers:");
    scanf("%d %d",&a, &b);
    test(a,b);//函数调用,括号里的参数为实参
    printf("%d\n",sum);
    }
    /*定义函数*/
    int test(int a, int b)//a,b为形参
    {
    sum=a+b;
    return sum;//函数返回sum值给调用函数
    }
    1、实际参数:是函数调用时出现在圆括号中的表达式, 实参可以是变量、常量和表达式.
    例如:y = power(x,2);
    2、形式参数:是函数定义中在函数头部声明的变量, 形参只能是指定类型的变量。
    例如:y = power(x, i*2);
    注意:实参的个数必须与形参相等,且参数顺序、类型要对应一致。
    实参与形参是按位置一一对应地传递数据的。形参和实参之间的关系是: 单向的值的传递。
    单向值传递:形参和实参变量都各自有不同的存储单元,
    实参有自己的一个存储空间,行参有自己的一个存储空间,把实参传递给形参,在形参的存储空间里运算,
    但是这种运算是不会对实参的存储空间产生影响的.
    3、int main(void)是不接受任何参数传递进来的意思。
    4、ruturn的作用:
    (1)带回返回值。
    (2)终止执行函数,并把控制返回给调用函数的下一个语句。
    5、函数类型声明:
    (1)函数应该进行类型声明,它和返回值类型相同(如果函数的类型与return语句的表达式的类型不一致时,
    则以函数的类型为准。返回时自动进行数据转换);
    函数声明应与该函数定义的函数类型与名称,形参的个数,类型,次序相一致。
    (2) 无返回值的类型应该被声明为void类型。
    例如:double klink(int a, int b)//double 定义的是函数类型,即函数返回值的类型; int 定义的是参数的类型;
    void print_name();
    (3)函数声明中的形参名可省略,其形式为:
    类型名 函数名(类型1,类型2,…,类型n);
    例如:double klink(int a, int b)
    类型名 函数名();
    例如:void print_name();
    (4)不确定参数声明
    例如:int printf(char *,...);//不确定参数声明要加头文件stdarg.h
    6、递归
    利用递归函数计算5!
    #include <stdio.h>
    int fun(int num);
    int num;
    int main()
    {
    printf("%d\n",fun(5));
    return 0;
    }
    int fun(int num)
    {
    if(num>2)
    return num*fun(num-1);//如果累乘不到1,将会继续把n-1代入进行递归,逐步的实现由n向1累乘
    else
    return num;//累成结束,返回num值
    }
    (1)定义:允许一个函数调用其本身,这种调用过程被称为递归。
    (2)优缺点:一般可以代替循环语句使用,但有些情况下使用循环语句比较好,其执行效率没有循环语句高。
    例如计算100!(可以自己动手敲一下),分别使用for循环和递归函数实现。
    for 循环:
    #include <stdio.h>
    int main(){
    double i, num=1;
    for(i=1; i<101; i++){
    num=num*i;
    }
    printf("100的阶乘为:%d\n", num);
    return 0;
    }
    递归函数:自己动手敲一下
    7、函数原型
    函数原型也叫函数声明,还叫引用说明。其目的是实现先调用函数,后定义函数。
    例如:
    #include<stdio.h>
    void fun(int);//函数原型。
    int main()
    {
    int m;
    scanf("%d",&m);
    fun(m);//虽然fun的定义在后面,但是上面有了函数原型,这就可以调用了。
    return 0;
    }
    void fun(int m)
    {
    int sum=0, n=2;
    sum=m+n;
    printf("%d\n",sum);
    }
    注意:
    C是函数式语言
    必须有且只能有一个名为main的主函数
    C程序的执行总是从main函数开始,在main中结束
    函数不能嵌套定义,但可以嵌套调用
    当函数定义在主调函数之前,即先定义, 后调用,则调用时函数声明可以省略。
    当函数返值是char或int型,系统自动按int型处理

     

    本文原始地址:http://www.coderonline.net/ocean-journey-of-c-functions-review.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于

    发表评论

    表情 格式
    1. 要是排版再漂亮些就好了,看着有点费劲。

      Coder 评论达人 LV.5 3年前 (2015-07-29) [0] [0]
    2. 详细,递归可以加入些自己的理解。

      哈哈 评论达人 LV.4 3年前 (2015-07-28) [0] [0]
    3. 赞,

      Michael 评论达人 LV.5 3年前 (2015-07-27) [0] [0]
    4. 恩,挺详细的。。。

      sin30° 评论达人 LV.1 3年前 (2015-07-27) [0] [0]
    5. 可以 不错 欢迎分享

      大熊猫 评论达人 LV.3 3年前 (2015-07-27) [0] [0]
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册