2011-09-26 5 views
1

이 질문이 나를 도울 수있는 사람에게 너무 기본 적이기를 바랍니다.동일한 변수를 두 가지 방법으로 사용할 수 있습니까?

필자는 한 가지 방법으로 정의하고 다른 것으로 조작하고 싶은 변수를 가지고 있습니다. 이것이 가능한가?

첨부 된 간단한 예제 코드가 도움이되기를 바랍니다. 'A'세계 선언에서 새로운 지역 변수 별개의 선언
나는 '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입니다. 여기에 전역 변수 '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);  
} 
관련 문제