参数—传值调用

来源:互联网 发布:竖琴 知乎 编辑:程序博客网 时间:2024/06/06 19:11

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

2、在C语言中,被调用的函数不能直接修改主函数中变量的值,而是能修改其私有的临时副本中的值。

3、传值调用的利大于弊。在被调用函数中,参数可以看作是便于初始化的局部变量。因此额外使用的变量更少。这样做可以是程序紧凑简洁。例如,下面这个power函数利用了这一性质:

#include<stdio.h>int power(int base, int n){     int p;       for(p = 1; n > 0; --n)       p = p * base;       return p;}
其中,参数n用作临时变量,并通过随后执行的for循环语句递减,直到其值为0,这样就不需要额外引入变量i; power 函数内部对n的任何操作不会影响到函数中n的原始参数值。

       必要时,也可以让函数能够修改主调函数中的变量。在这种情况下,调用者需要向被调用的函数提供设置值的变量的地址(地址就是指向变量的指针),而被调用函数则需要将对用的参数声明为指针类型。并通过它间接访问变量。