鍍金池/ 教程/ C/ Objective-C 變量
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語(yǔ)句
Objective-C do...while循環(huán)
Objective-C教程
Objective-C 嵌套switch語(yǔ)句
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 教程首頁(yè)
Objective-C 擴(kuò)展
Objective-C 異常處理
Objective-C 類型轉(zhuǎn)換
Objective-C 嵌套 if 語(yǔ)句
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ù)合對(duì)象
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 語(yǔ)句
Objective-C switch語(yǔ)句
Objective-C URL加載系統(tǒng)
Objective-C 算術(shù)運(yùn)算符
Objective-C Numbers/數(shù)字
Objective-C語(yǔ)言程序結(jié)構(gòu)
Objective-C 快速枚舉
Objective-C 基本語(yǔ)法
Objective-C 類&對(duì)象
Objective-C 變量
Objective-C 關(guān)系運(yùn)算符
Objective-C 塊
Objective-C break語(yǔ)句
Objective-C continue語(yǔ)句
Objective-C 語(yǔ)言概述
Objective C 文本和字符串
Objective-C 函數(shù)
Objective-C 傳遞函數(shù)的指針
Objective-C 數(shù)組的指針
Objective-C 多維數(shù)組
Objective-C 繼承
Objective-C 數(shù)據(jù)封裝

Objective-C 變量

變量是只不過(guò)是一個(gè)名字到存儲(chǔ)區(qū)域,讓程序可以操縱。 Objective-C中的每一個(gè)變量有特定的類型,確定該變量的存儲(chǔ)器的大小和布局,可以存儲(chǔ)在該存儲(chǔ)器內(nèi)的值的范圍內(nèi);和設(shè)定操作,可變化應(yīng)用。

一個(gè)變量名可以由字母,數(shù)字和下劃線。它必須以字母或下劃線開始。大寫和小寫字母是不同的,因?yàn)镺bjective-C語(yǔ)言是區(qū)分大小寫的。前面的章節(jié)中介紹的基本類型的基礎(chǔ)上,有以下基本變量類型:

類型 描述
char 通常一個(gè)單字節(jié)(一個(gè)字節(jié))。這是一個(gè)整數(shù)類型.
int 機(jī)器的自然整數(shù)大小.
float 單精度浮點(diǎn)值.
double 雙精度浮點(diǎn)值.
void 表示類型沒(méi)有(空).

Objective-C的編程語(yǔ)言還可以定義各種其他類型的變量,我們將在隨后的章節(jié),如枚舉,指針,數(shù)組,結(jié)構(gòu),聯(lián)合,對(duì)于本章,我們只學(xué)習(xí)基本的變量類型。

Objective-C中的變量定義:

定義一個(gè)變量意味著告訴編譯器在哪里以及如何創(chuàng)建存儲(chǔ)變量。一個(gè)變量的定義指定了數(shù)據(jù)類型,并包含一個(gè)列表中的一個(gè)或多個(gè)變量的那類型,如下所示:

type variable_list;

在這里,type 必須是一個(gè)有效的Objective-C 數(shù)據(jù)類型,包括char,w_char, int, float, double, bool或任何用戶定義的對(duì)象等,并variable_list 可能包含一個(gè)或多個(gè)以逗號(hào)分隔的標(biāo)識(shí)符名稱。一些有效的聲明如下所示:

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

行中 int i, j, k;;聲明和定義變量i,j和k指示編譯器來(lái)創(chuàng)建命名的變量類型為int i,j和k的。

變量可以在他們的聲明中初始化(分配一個(gè)初始值)。初始化由等號(hào)后面的常量表達(dá)式如下:

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'.

對(duì)于沒(méi)有初始化的定義:具有靜態(tài)存儲(chǔ)持續(xù)時(shí)間的變量隱式初始化NULL(所有字節(jié)值0);所有其他變量的初始值是不確定的。

Objective-C中的變量聲明:

變量聲明提供編譯器,保證有一個(gè)具有給定類型和名稱的變量,無(wú)需完整的細(xì)節(jié)進(jìn)行進(jìn)一步編譯,這樣編譯器存在的變量。變量聲明有其意義,編譯器在編譯的時(shí)候只需要在鏈接程序的時(shí)候,實(shí)際的變量聲明。

當(dāng)您使用多個(gè)文件和你的文件,這將是在鏈接程序的時(shí)候定義的變量,變量聲明是有用的。在任何地方,將使用extern關(guān)鍵字來(lái)聲明一個(gè)變量。雖然你可以在你的Objective-C程序中聲明一個(gè)變量多次,但它可以在文件中,一個(gè)函數(shù)或代碼塊中只定義一次。

例子

試試下面的例子中,變量已被定義在頂部,但他們已經(jīng)定義并初始化里面的主要功能:

#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;
}

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

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 

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

// function declaration
int func();

int main()
{
    // function call
    int i = func();
}

// function definition
int func()
{
    return 0;
}

Objective-C中的左值和右值:

Objective-C中有兩種類型的表達(dá)式:

  1. lvalue : 該表達(dá)式是一個(gè)左值,可能會(huì)出現(xiàn)一個(gè)賦值為左邊或右邊。

  2. rvalue : 這是一個(gè)右值表達(dá)式可能會(huì)出現(xiàn)在右側(cè)而不是左側(cè)的任務(wù)。

變量是左值,可能會(huì)出現(xiàn)在左手側(cè)的一個(gè)賦值。數(shù)字文本是右值,所以不得指讓,并不能出現(xiàn)在左側(cè)。以下是一個(gè)有效的語(yǔ)句:

int g = 20;

但是,下面不是一個(gè)有效的語(yǔ)句,會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤:

10 = 20;