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 變量

變量是隻不過是一個名字到存儲區域,讓程序可以操縱。 Objective-C中的每一個變量有特定的類型,確定該變量的存儲器的大小和佈局,可以存儲在該存儲器內的值的範圍內;和設定操作,可變化應用。

一個變量名可以由字母,數字和下劃線。它必須以字母或下劃線開始。大寫和小寫字母是不同的,因爲Objective-C語言是區分大小寫的。前面的章節中介紹的基本類型的基礎上,有以下基本變量類型:

類型

描述

char

通常一個單字節(一個字節)。這是一個整數類型.

int

機器的自然整數大小.

float

單精度浮點值.

double

雙精度浮點值.

void

表示類型沒有(空).

Objective-C的編程語言還可以定義各種其他類型的變量,我們將在隨後的章節,如枚舉,指針,數組,結構,聯合,對於本章,我們只學習基本的變量類型。

Objective-C中的變量定義:

定義一個變量意味着告訴編譯器在哪裏以及如何創建存儲變量。一個變量的定義指定了數據類型,幷包含一個列表中的一個或多個變量的那類型,如下所示:

type variable_list;

在這裏,type 必須是一個有效的Objective-C 數據類型,包括char,w_char, int, float, double, bool或任何用戶定義的對象等,並variable_list 可能包含一個或多個以逗號分隔的標識符名稱。一些有效的聲明如下所示:

int i, j, k; char c, ch; float f, salary; double d;

行中 int i, j, k;;聲明和定義變量i,j和k指示編譯器來創建命名的變量類型爲int i,j和k的。

變量可以在他們的聲明中初始化(分配一個初始值)。初始化由等號後面的常量表達式如下:

type variable_name = value;

一些例子:

extern int d = 3, f = 5; // declaration of d and f. int d = 3, f = 5; // definition and initializing d and f. byte z = 22; // definition and initializes z. char x = 'x'; // the variable x has the value 'x'.

對於沒有初始化的定義:具有靜態存儲持續時間的變量隱式初始化NULL(所有字節值0);所有其他變量的初始值是不確定的。

Objective-C中的變量聲明:

變量聲明提供編譯器,保證有一個具有給定類型和名稱的變量,無需完整的細節進行進一步編譯,這樣編譯器存在的變量。變量聲明有其意義,編譯器在編譯的時候只需要在鏈接程序的時候,實際的變量聲明。

當您使用多個文件和你的文件,這將是在鏈接程序的時候定義的變量,變量聲明是有用的。在任何地方,將使用extern關鍵字來聲明一個變量。雖然你可以在你的Objective-C程序中聲明一個變量多次,但它可以在文件中,一個函數或代碼塊中只定義一次。

例子

試試下面的例子中,變量已被定義在頂部,但他們已經定義並初始化裏面的主要功能:

#import <Foundation/Foundation.h> // Variable declaration: extern int a, b; extern int c; extern float f; int main () { /* variable definition: */ int a, b; int c; float f; /* actual initialization */ a = 10; b = 20; c = a + b; NSLog(@"value of c : %d
", c); f = 70.0/3.0; NSLog(@"value of f : %f
", f); return 0; }

上面的代碼編譯和執行時,它會產生以下結果:

2013-09-07 22:43:31.695 demo[14019] value of c : 30
2013-09-07 22:43:31.695 demo[14019] value of f : 23.333334

同樣的概念適用於函數聲明提供在其聲明的時候,它的實際定義一個函數名可以給其他地方。在下面的例子,它使用C函數,正如所知道的 Objective-C支持C風格的函數也解釋:

// function declaration int func(); int main() { // function call int i = func(); } // function definition int func() { return 0; }

Objective-C中的左值和右值:

Objective-C中有兩種類型的表達式:

  1. lvalue : 該表達式是一個左值,可能會出現一個賦值爲左邊或右邊。

  2. rvalue : 這是一個右值表達式可能會出現在右側而不是左側的任務。

變量是左值,可能會出現在左手側的一個賦值。數字文本是右值,所以不得指讓,並不能出現在左側。以下是一個有效的語句:

int g = 20;

但是,下面不是一個有效的語句,會產生編譯時錯誤:

10 = 20;