2011-09-26 131 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);  
} 
相关问题