数组作为函数参数
发布时间:2014/6/8 20:21:00 访问次数:732
数组可以作为函数的参数使用,S1076-7402进行数据传送。数组作为函数参数有两种形式:一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。
(1)数组元素作为函数实参
数组元素就是下标变量,它与普通变量并无区别。因此它作为函数实参使用与普通变量作为函数实参是完全相同的,在发生函数调用时,把作为实参的数组元素中的值传送给形参,实现单向的传送。
(2)数组名作为函数参数
数组名作为函数参数与数组元素作为函数参数有以下几点不同:
①用数组元素作实参时,只要数组类型和函数形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的。因此,并不要求函数的形参也是下标变量。换句话说,对数组元素的处理是按普通变量对待的。用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参不一致时,即会发生错误。
②普通变量或下标变量作为函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。在函数调用时发生的值传送是把实参变量的值贼予形参变量。在用数组名作函数参数时,不是进行值的传送,即不是把实参数组的每一个元素的值都赋予形参变量的各个元素。因为实际上形参数组并不存在,编译系统不为形参数组分配内存。那么,数据的传送是如何实现的呢?我们已知道数组名就是数组的首地址,因此在数组名作函数
参数时所进行的传送只是地址的传送,也就是说实参数组的首地址赋予形参数组名。形参数组名取得该地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
③前面已经介绍过,在变量作为函数参数时,所进行的值传送是单向的,即只能从实参传向形参,不能从形参返回实参。形参的初值和实参相同,而形参的值发生改变后,实参并不变化,两者的最终值通常是不同的。而当用数组名作函数参数时,情况则不同。由于实际上形参和实参为同一数组,因此当形参数组发生变化时,实参数组也随之发生变化,但是这种情况不能理解为发生了“双向”的值传递。从实际情况来看,调用函数之后实参数组的值将由于形参数组的变化而变化。
数组可以作为函数的参数使用,S1076-7402进行数据传送。数组作为函数参数有两种形式:一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。
(1)数组元素作为函数实参
数组元素就是下标变量,它与普通变量并无区别。因此它作为函数实参使用与普通变量作为函数实参是完全相同的,在发生函数调用时,把作为实参的数组元素中的值传送给形参,实现单向的传送。
(2)数组名作为函数参数
数组名作为函数参数与数组元素作为函数参数有以下几点不同:
①用数组元素作实参时,只要数组类型和函数形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的。因此,并不要求函数的形参也是下标变量。换句话说,对数组元素的处理是按普通变量对待的。用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参不一致时,即会发生错误。
②普通变量或下标变量作为函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。在函数调用时发生的值传送是把实参变量的值贼予形参变量。在用数组名作函数参数时,不是进行值的传送,即不是把实参数组的每一个元素的值都赋予形参变量的各个元素。因为实际上形参数组并不存在,编译系统不为形参数组分配内存。那么,数据的传送是如何实现的呢?我们已知道数组名就是数组的首地址,因此在数组名作函数
参数时所进行的传送只是地址的传送,也就是说实参数组的首地址赋予形参数组名。形参数组名取得该地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
③前面已经介绍过,在变量作为函数参数时,所进行的值传送是单向的,即只能从实参传向形参,不能从形参返回实参。形参的初值和实参相同,而形参的值发生改变后,实参并不变化,两者的最终值通常是不同的。而当用数组名作函数参数时,情况则不同。由于实际上形参和实参为同一数组,因此当形参数组发生变化时,实参数组也随之发生变化,但是这种情况不能理解为发生了“双向”的值传递。从实际情况来看,调用函数之后实参数组的值将由于形参数组的变化而变化。
上一篇:函数的返回值是指函数被调用
热门点击
- 6264芯片的地址范围
- 工艺流程的设计原则
- BCD码
- 焊接温度和焊接时间
- 波峰焊通用工艺
- 采用专用工具马蹄形烙铁头焊接
- 改变表面张力与黏度的措施
- PQFP (Plastic Quad Fl
- COB技术
- 对湿度敏感器件(MSD)昀管理和控制措施
推荐技术资料
- FU-19推挽功放制作
- FU-19是国产大功率发射双四极功率电二管,EPL20... [详细]