黑马程序员技术交流社区

标题: 数组作为函数参数(数组可以作为函数的参数使用,进行... [打印本页]

作者: 爱楚楚    时间: 2015-7-16 20:38
标题: 数组作为函数参数(数组可以作为函数的参数使用,进行...
1、数组用作函数参数有两种形式:
   1)一种是把数组元素(下标变量)作为实参使用

         1))定义:数组元素就是下标变量,它与普通变量并无区别,因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送
        2))在变量作函数参数时,所进行的值传送是单向的。即只能从实参传向参,不能从形参传回实参,形参的初值和实参相同,而形参的值发生改变后,实参并无变化,两者的终值是不同的。

2)一种是把数组名作为函数的形参和实参使用

         1))用数组元素作为函数参数不要求形参也必须是数组元素,但是用数组名作为函数参数时,则要求形参和相对应的实参都必须是类型相同的数组
        2)) 在c语言中,数组名除作为变量的标识符之外,还代表了该数组在内存中的起始地址,因此,当数组名作函数参数时,实参与形参之间不是“值传递”,而是“地址传递”(指向同一个内存空间),实参数组名将数组的起始地址传递给形参数组,两个数组共享一段内存单元,编译系统不再为形参数组分配存储单元
      3))注意点:
           (1)形参数组和实参数组的类型必须一致,否则会引起错误
           (2)形参数组和实参数组的长度可以不一致,但运行的结果和实际不相符
           (3)形参数组的长度可以不写
           (4)关于数组名作为函数参数后,数组的长度信息丢失的问题(因为c语言中,不管什么类型的数据,数据的内存地址在内存都占8个字节)


作者: likang    时间: 2015-7-16 21:33
涨姿势了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2