简明现代魔法 -> C/C++ -> C 程序设计:参数与传值调用

C 程序设计:参数与传值调用

2010-02-21

在 C 语言中,所有函数参数都是值传递的。也就是说,传递给函数的参数是存放在临时变量中。被调函数不能直接修改主调函数中变量的值,而只能够修改其私有的临时变量的值。

传值调用的利大于弊,在被调函数中,参数可以看作是便于初始化的局部变量,因此额外使用的变量会更少,这样程序可以更紧凑简洁。

/* power() 函数:求底数的 n 次幂;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 循环语句递减,直到其值为0,这样就不需要额外地引入变量 i。power() 函数内部对 n 的任何操作都不会影响到调用函数中 n 的原始参数值。

如果参数是数组,那么情况就有所不同了。当把数组名用作参数,传递给函数的值是数组第一个元素的地址,而不是数组的所有元素。在被调用函数,可以通过数组下标访问或修改数组元素的值。

必要时,也可以让函数能够修改主调函数中的变量。这种情况下,需要向函数提供变量的指针,函数的参数声明需要设置为指针类型,并通过它间接访问变量。

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们