美文网首页iOS 开发
C程序设计语言 1.8 参数--传值调用

C程序设计语言 1.8 参数--传值调用

作者: dongwenbo | 来源:发表于2016-09-06 17:46 被阅读31次

    在C语言中,所有参数都是通过值传递的,也就是说,传递给被调函数的参数值存放在临时变量中,而不是存放在原来的变量中。被调函数不能直接修改主调函数中变量的值,而只能修改其私有的临时副本的值。
    传值调用利大于弊,在被调函数中,参数可以看做便于初始化的局部变量,因此额外使用的变量更少,这样程序可以更紧凑

    /* power: raise base to nth
    power; n >= 0; version 2 */
    int power(int base, int n)
    {
      int p;
      for (p = 1; n > 0; n)
        p = p * base;
      return p;
    }
    

    其中,参数n用作临时变量,并在for循环中递减,这样就不需要引入额外的变量,而且在power函数中的操作不会影响到调用函数的原始值。
    必要时,也可以让函数能够修改主调函数中的变量,调用者需要向被调函数提供带设置的变量地址,而被调函数则需要将对应的参数声明为指针类型,并通过它间接访问变量。我们将在第五章讨论指针。
    如果参数是数组,把数组名当做参数时,传递给函数的值是数组的起始元素的位置或地址---它并不复制数组元素本。在被调函数中,可以通过数组下标访问或修改数组元素的值。下一节讨论。

    相关文章

      网友评论

        本文标题:C程序设计语言 1.8 参数--传值调用

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