鍍金池/ 教程/ C/ Objective-C 指針的數(shù)組
Objective-C 多態(tài)性
Objective-C 預(yù)處理器
Objective-C for循環(huán)
Objective-C 開發(fā)環(huán)境(安裝配置)
Obj-C Foundation/基礎(chǔ)框架
Objective-C 指針運(yùn)算
Objective-C 循環(huán)
Objective-C 錯(cuò)誤處理
Objective-C while循環(huán)
Objective-C if語句
Objective-C do...while循環(huán)
Objective-C教程
Objective-C 嵌套switch語句
Objective-C 函數(shù)按值調(diào)用
Objective-C 常量
Objective-C 運(yùn)算符
Objective-C 數(shù)據(jù)類型
Objective-C 邏輯運(yùn)算符
Objective-C 數(shù)組作為函數(shù)參數(shù)傳遞
Objective-C struct/結(jié)構(gòu)
Objective-C 嵌套循環(huán)
Objective-C 函數(shù)引用調(diào)用
Objective-C 日志處理
Objective-C 數(shù)據(jù)存儲(chǔ)
Objective-C 教程首頁
Objective-C 擴(kuò)展
Objective-C 異常處理
Objective-C 類型轉(zhuǎn)換
Objective-C 嵌套 if 語句
Objective-C typedef
Objective-C 決策
Objective-C 指針的數(shù)組
Objective-C Protocols/協(xié)議
Objective-C 日期和時(shí)間
Objective-C 指針
Objective-C 內(nèi)存管理
命令行參數(shù)
Objective-C NSString/字符串
Objective-C 動(dòng)態(tài)綁定
Objective-C 復(fù)合對象
Objective-C Arrays/數(shù)組
Objective-C 位運(yùn)算符
Objective-C 指向指針的指針
Objective-C 從函數(shù)返回?cái)?shù)組
Objective-C Posing/冒充
Objective-C Categories/類別
Objective-C 文件處理
Objective-C 賦值運(yùn)算符
Objective-C 函數(shù)返回指針
Objective-C if...else 語句
Objective-C switch語句
Objective-C URL加載系統(tǒng)
Objective-C 算術(shù)運(yùn)算符
Objective-C Numbers/數(shù)字
Objective-C語言程序結(jié)構(gòu)
Objective-C 快速枚舉
Objective-C 基本語法
Objective-C 類&對象
Objective-C 變量
Objective-C 關(guān)系運(yùn)算符
Objective-C 塊
Objective-C break語句
Objective-C continue語句
Objective-C 語言概述
Objective C 文本和字符串
Objective-C 函數(shù)
Objective-C 傳遞函數(shù)的指針
Objective-C 數(shù)組的指針
Objective-C 多維數(shù)組
Objective-C 繼承
Objective-C 數(shù)據(jù)封裝

Objective-C 指針的數(shù)組

這是最有可能的是,你可能不理解本章的內(nèi)容,直到通過 Objective-C 中的指針相關(guān)的章節(jié)。

因此,假如你有一點(diǎn)認(rèn)識,在Objective-C編程語言的指針,讓我們開始:數(shù)組名是一個(gè)常量指針數(shù)組的第一個(gè)元素。因此聲明:

double balance[50];

balance是一個(gè)指針,指向與平衡[0],這是數(shù)組balance 第一個(gè)元素的地址。因此,下面的程序片段分配p為balance地址的第一個(gè)元素:

double *p;
double balance[10];

p = balance;

它是合法的,使用數(shù)組名作為常量指針,反之亦然。因此, *(balance + 4)是一種合法的方式訪問數(shù)據(jù)balance[4]。 

一旦儲(chǔ)存 p 中的第一個(gè)元素的地址,可以訪問數(shù)組元素使用 *p, *(p+1), *(p+2)等。下面的例子來說明上述討論的所有概念:

#import <Foundation/Foundation.h>

int main ()
{
   /* an array with 5 elements */
   double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
   double *p;
   int i;

   p = balance;
 
   /* output each array element's value */
   NSLog( @"Array values using yiibaier
");
   for ( i = 0; i < 5; i++ )
   {
       NSLog(@"*(p + %d) : %f
",  i, *(p + i) );
   }

   NSLog(@"Array values using balance as address
");
   for ( i = 0; i < 5; i++ )
   {
       NSLog(@"*(balance + %d) : %f
",  i, *(balance + i) );
   }
 
   return 0;
}

上面的代碼編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:

2013-09-14 01:36:57.995 demo[31469] Array values using yiibaier
2013-09-14 01:36:57.995 demo[31469] *(p + 0) : 1000.000000
2013-09-14 01:36:57.995 demo[31469] *(p + 1) : 2.000000
2013-09-14 01:36:57.995 demo[31469] *(p + 2) : 3.400000
2013-09-14 01:36:57.995 demo[31469] *(p + 3) : 17.000000
2013-09-14 01:36:57.995 demo[31469] *(p + 4) : 50.000000
2013-09-14 01:36:57.995 demo[31469] Array values using balance as address
2013-09-14 01:36:57.995 demo[31469] *(balance + 0) : 1000.000000
2013-09-14 01:36:57.995 demo[31469] *(balance + 1) : 2.000000
2013-09-14 01:36:57.995 demo[31469] *(balance + 2) : 3.400000
2013-09-14 01:36:57.995 demo[31469] *(balance + 3) : 17.000000
2013-09-14 01:36:57.995 demo[31469] *(balance + 4) : 50.000000

在上面的例子中,p是一個(gè)指針,指向double,這意味著它可以存儲(chǔ)雙精度類型的變量地址。一旦我們有了p的地址,然后 *p 會(huì)給我們提供的地址存儲(chǔ)在p值,因?yàn)槲覀円呀?jīng)在上面的例子顯示。