美文网首页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 参数--传值调用

    在C语言中,所有参数都是通过值传递的,也就是说,传递给被调函数的参数值存放在临时变量中,而不是存放在原来的变量中。...

  • swift学习笔记

    问:传值调用与传引用调用的区别 答:一般默认的参数传递都是传值调用的,而不是传引用。所以传入的参数在函数内改变,并...

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

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

  • Python函数参数

    参数类型 必选参数:在给函数传参数时,按照顺序,依次传值。 默认参数:就是在写函数的时候直接给参数传默认的值,调用...

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

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

  • 软件评测师写作专栏之参数传递的方式和图结构14

    各位学员大家好,大家在学习程序设计语言的时候,参数传递会涉及到传值调用和引用调用,另外关于图结构的知识会涉及到有向...

  • Scala基础语法11:Scala函数2

    1.传值调用和传名调用 Scala的解析器在解析函数参数时有两种方式: 传值调用(call by value):先...

  • Objective-C 闭包声明(Block)

    本地变量 属性 方法参数 方法调用传参 C函数参数 类型定义

  • 4.5方法参数

    方法参数 程序设计语言中将有关参数传递给方法(函数)的一些专业术语有:按值调用表示方法接受的是调用者提供的值按引用...

  • 函数参数列表形式

    .传值 向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影...

网友评论

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

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