- 基本 Objective-C
- Objective-C - 主页
- Objective-C - 概述
- Objective-C - 环境设置
- Objective-C - 程序结构
- Objective-C - 基本语法
- Objective-C - 数据类型
- Objective-C - 变量
- Objective-C - 常量
- Objective-C - 运算符
- Objective-C - 循环
- Objective-C - 决策
- Objective-C - 函数
- Objective-C - 块
- Objective-C - 数字
- Objective-C - 数组
- Objective-C - 指针
- Objective-C - 字符串
- Objective-C - 结构
- Objective-C - 预处理器
- Objective-C - Typedef
- Objective-C - 类型转换
- Objective-C - 日志处理
- Objective-C - 错误处理
- 命令行参数
- 高级 Objective-C
- Objective-C - 类和对象
- Objective-C - 继承
- Objective-C - 多态性
- Objective-C - 数据封装
- Objective-C - 类别
- Objective-C - 摆姿势
- Objective-C - 扩展
- Objective-C - 协议
- Objective-C - 动态绑定
- Objective-C - 复合对象
- Obj-C - 基础框架
- Objective-C - 快速枚举
- Obj-C - 内存管理
- Objective-C 有用资源
- Objective-C - 快速指南
- Objective-C - 有用的资源
- Objective-C - 讨论
在 Objective-C 中将数组作为函数参数传递
如果要传递一维数组作为函数中的参数,则必须以以下三种方式之一声明函数形式参数,并且所有三种声明方法都会产生相似的结果,因为每种方法都告诉编译器正在使用整数指针待收到。类似地,您可以传递多维数组作为形式参数。
方式1
作为指针的形式参数如下。您将在下一章中学习什么是指针。
- (void) myFunction(int *) param { . . . }
方式2
形式参数作为大小数组如下 -
- (void) myFunction(int [10] )param { . . . }
方式3
形式参数作为未调整大小的数组,如下所示 -
-(void) myFunction: (int []) param { . . . }
例子
现在,考虑以下函数,它将接受一个数组作为参数以及另一个参数,并根据传递的参数,它将返回通过数组传递的数字的平均值,如下所示 -
-(double) getAverage:(int []) arr andSize:(int) size { int i; double avg; double sum; for (i = 0; i < size; ++i) { sum += arr[i]; } avg = sum / size; return avg; }
现在,让我们按如下方式调用上述函数 -
#import <Foundation/Foundation.h> @interface SampleClass:NSObject /* function declaration */ -(double) getAverage:(int []) arr andSize:(int) size; @end @implementation SampleClass -(double) getAverage:(int []) arr andSize:(int) size { int i; double avg; double sum =0; for (i = 0; i < size; ++i) { sum += arr[i]; } avg = sum / size; return avg; } @end int main () { /* an int array with 5 elements */ int balance[5] = {1000, 2, 3, 17, 50}; double avg; SampleClass *sampleClass = [[SampleClass alloc]init]; /* pass pointer to the array as an argument */ avg = [sampleClass getAverage:balance andSize: 5] ; /* output the returned value */ NSLog( @"Average value is: %f ", avg ); return 0; }
当上面的代码一起编译并执行时,会产生以下结果 -
2013-09-14 03:10:33.438 demo[24548] Average value is: 214.400000
正如您所看到的,就函数而言,数组的长度并不重要,因为 Objective-C 不对形式参数执行边界检查。
Objective_c_arrays.htm