2011-09-26 87 views
1

我希望這個問題對於幫助我的人來說不是太基本。我可以在兩種方法中使用相同的變量嗎?

我有一個變量誰的價值我定義在一個方法,我想在另一個使用和操縱。這可能嗎?

我希望簡單的示例代碼將幫助。
我想爲「c」的值設定爲3,但它是僅2.

int a = 0; 

-(void)method1 { 
int a = 1; 
NSLog(@"method 1--> a = %d", a); 
} 


-(void)method2 { 
int b = 2; 
NSLog(@"method 2--> b = %d", b); 
int c = a + b; 
NSLog(@"method 2--> c = %d", c);  
} 

回答

1

INT A = 1在方法1聲明從「A」全局聲明的新的局部變量是不同的。如果你想要在這裏使用全局的'a',在這裏省略'int'。這將把初始化的局部變量'a'的聲明轉換爲全局聲明的'a'。

+0

@ Jupiter869,別提了。如果答案符合您的問號,則表示已接受。 –

0

好吧,它將如何爲你工作。

您已在本地函數中重新聲明瞭全局變量。這不是問題,但您應該知道,全局值不會被使用,並且在完成功能後,全局值將變爲相同。

所以,如果你想操縱兩個方法中的變量,它應該是全局的,對於他們兩個。像這樣:

int a = 0; 

-(void)method1 { 
// int a = 1; Now it is local and will not be changed, after function finishing. 
a = 1; // Now it is local, so will stay 1 after the end of method. 
NSLog(@"method 1--> a = %d", a); 
} 


-(void)method2 { 
int b = 2; 
NSLog(@"method 2--> b = %d", b); 
int c = a + b; 
NSLog(@"method 2--> c = %d", c);  
} 
相關問題