用形象的语言表述复杂的问题--第三章:c语言里的函数与指针(2)

由于很多老师都找王大虎帮忙计算平均分,王大虎就把计算平均分的算法包装成一个函数,各科的成绩只要调用这个函数,就可以得出结果。可见函数可以复用,可以让程序模块化,真是个好东西。

函数有四部分组成:返回值、函数名、函数参数、函数体(函数功能)。

float Average(int* p, int nLen)

{

...

return average;

}

王大虎定义一个名叫Average的函数,它接收两个参数int*和int,函数功能是计算平均分,返回值是一个float型的浮点数。

我们生活中很多东西都像函数,比如学校。家长根据孩子的年龄选择不同的学校,然后教了学费,把孩子送进去,几年以后,孩子毕业归来。这期间,家长大部分精力花在挣钱上,学校专门教书育人,各司其职。这里面,学校就是函数名,学生和学费就是参数,教书育人就是函数功能,孩子的知识就是返回值。

我们来研究平均分函数里的参数:int* p, int nLen和调用实例:Average(zhang, 50)

nLen是局部参数,被赋值为50,作用域就是在这个函数里,用完了以后就丢弃了。

p是指针,传递的是存储学生成绩的数组zhang。这就有疑问了,p是int型的指针,怎么能传递数组名呢,难道指针和数组可以互相转换?

当然不是,指针是指针,数组是数组,两者没有关系。指针的功能是保存某个变量的地址,数组表达的是一段连续的内存空间,它们是完全不同的东西。只不过当数组名作为函数的实参传递时,函数的形参可以用指针来接收而已。

c语言里的指针功能说个三天三夜也说不完,我们这里只是有个初步认识,等以后用到了再慢慢介绍,总之要记住一点,指针变量的值永远是一段内存地址,要想获得内存中真实的值,就需要解引用,即在变量前面加个"*"号。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();