美文网首页首页投稿(暂停使用,暂停投稿)程序员每周500字
C语言的函数(第二篇章:函数的传值与传址和函数的调用)

C语言的函数(第二篇章:函数的传值与传址和函数的调用)

作者: 遮天的龙 | 来源:发表于2016-05-24 23:24 被阅读401次

一、函数的传值与传址

说起函数的传值与传址,外表看起来很高大上的样子,其实本质是都是传递一个数值而己。

  • 在这里引入两个概念,就是函数的的两类参数。分别为:形式参数(形参)和实际参数(实参)。函数定义时的参数称为形参,函数调用时使用的参数称为实参。(第二点讲函数的调用也会用到这两个概念的。)

  • eg:使用函数交换两个变量的值。(这里给个例子吧。详细的会在注释标出。)

    #include <stdio.h>
    int main(void)
    {
    int a = 4; int b = 5;  
    printf("a = %d b = %d\n",a,b); //定义两个变量
    int t = a;                                //swap的传值
    a = b;                                    //进行了有参交换
    b = t;                                    //对swap功能进行打包
    printf("a = %d b = %d\n",a,b);
    return 0;
    

    }

二、函数的调用

函数调用的一般形式有两种:

  • 1函数语句 :
    函数名 (实参表列); 或 函数名();[不要求函数带返回值]
    eg:swap(x,y);

  • 2函数表达式:
    m=max(a,b);

  • 3函数的嵌套调用:
    虽然现在的IDE(集成开放环境)平台有的允许嵌套定义的,但函数不能嵌套定义,为了考虑兼容的问题,一般都不建议去嵌套定义的。
    C语言允许进行嵌套调用。eg:
    #include<stdio.h>
    fun2(int x,int y)
    {
    int z;
    z=2*x-y;
    return z;
    }
    fun1(int x,int y)
    {
    int z;
    z=fun2(x,x+y); //在fun1()内调用fun2()函数
    return z;
    }
    main()
    {
    int a,b,c;
    printf("Please input two number:");
    scanf("%d%d",&a,&b);
    c=fun1(a,b); ///调用fun1()函数
    printf("%d\n",c);
    }

  • 4函数的递归调用
    定义:在调用一个函数的过程中,又直接或者间接地调用了该函数本身,这种形式称为函数的递归调用,这个函数就称为递归函数。
    其实就是一句话:自身调用自身
    一般的形式为:
    递归返回func(满足递归的条件)
    {
    if(能使递归终止条件)
    终止处理;
    else
    func(趋于递归终结的条件);
    }
    举个例子:用递归方法求n!(n>0)。
    include<stdio.h>
    long func(int n) //定义求阶乘的函数 func()
    {
    long m;
    if(n==1)
    m=1;
    else
    m= func(n-1)* n; //在函数的定义中又调用了自己
    return m;
    }
    main()
    {
    int n; float y;
    printf("input the value of n.\n");
    scanf("%d",&n);
    printf("%d!=%ld\n",n, func(n)); /输出n!
    }

相关文章

  • [转]正确理解C/C++中的传值调用/传址调用/引用调用

    首先说明,函数的传值调用和传址调用在C和C++中都是合法的语法,但是引用调用就只是在C++中合法的。 传值调用##...

  • C语言

    函数 传值调用 传址调用 区别? 函数内部想求参数的个数是不可能的 函数的嵌套调用 函数的链式访问:把一个函数的返...

  • C语言的函数(第二篇章:函数的传值与传址和函数的调用)

    一、函数的传值与传址 说起函数的传值与传址,外表看起来很高大上的样子,其实本质是都是传递一个数值而己。 在这里引入...

  • C语言函数参数的传值和传址调用

    欢迎关注我的博客Zhuhao's Blog获取最新文章 大家都知道,c语言一般的参数都是传值调用的,但有时候也有例...

  • 笔记3

    1函数调用的传值方式:1)按值传递2)地址传递 3)引用传递=指针传递的简化2函数重载c语言中函数的名称是可以--...

  • C语言的结构体(篇章之二)

    结构体与函数 一、结构体作为函数的参数 【一】、传值调用方式在函数之间直接传递结构体类型的数据——传值调用方式。当...

  • C++函数

    函数参数有默认值,调用的时候可以传值,可以不传值 可变参数,循环读取 构造函数,析构函数,拷贝构造函数 构造函数 ...

  • Java Script基础

    函数 function 函数的声明 函数的 调用 函数的传参 函数返回值 Return 返回...

  • Python 函数中,参数是传值,还是传引用?

    Python 函数中,参数是传值,还是传引用? 代码示例 在 C/C++ 中,传值和传引用是函数参数传递的两种方式...

  • 可能碰到的iOS笔试面试题(8)--Block

    Block Block底层原理实现 首先我们来看四个函数 造成这样的原因是:传值和传址。为什么说会有传值和传址,把...

网友评论

    本文标题:C语言的函数(第二篇章:函数的传值与传址和函数的调用)

    本文链接:https://www.haomeiwen.com/subject/shozrttx.html