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 while循環
Objective-C for循環
Objective-C do...while循環
Objective-C 嵌套循環
Objective-C break語句
Objective-C continue語句
Objective-C 決策
Objective-C if語句
Objective-C if...else 語句
Objective-C 嵌套 if 語句
Objective-C switch語句
Objective-C 嵌套switch語句
Objective-C 函數
Objective-C 函數按值調用
Objective-C 函數引用調用
Objective-C 塊
Objective-C Numbers/數字
Objective-C Arrays/數組
Objective-C 多維數組
Objective-C 數組作爲函數參數傳遞
Objective-C 從函數返回數組
Objective-C 指針的數組
Objective-C 指針
Objective-C 指針運算
Objective-C 數組的指針
Objective-C 指向指針的指針
Objective-C 傳遞函數的指針
Objective-C 函數返回指針
Objective-C NSString/字符串
Objective-C struct/結構
Objective-C 預處理器
Objective-C typedef
Objective-C 類型轉換
Objective-C 日誌處理
Objective-C 錯誤處理
命令行參數
Objective-C 類&對象
Objective-C 繼承
Objective-C 多態性
Objective-C 數據封裝
Objective-C Categories/類別
Objective-C Posing/冒充
Objective-C 擴展
Objective-C Protocols/協議
Objective-C 動態綁定
Objective-C 複合對象
Obj-C Foundation/基礎框架
Objective-C 數據存儲
Objective C 文本和字符串
Objective-C 日期和時間
Objective-C 異常處理
Objective-C 文件處理
Objective-C URL加載系統
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 yiibaier 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的執行沒有邊界檢查的格式化參數。