2012-08-15 1 views
2

선생님이 저에게 질문 (С를 ++) 준 중괄호 : 후 화면에 인쇄됩니다 무엇 :중복 변수는 외부

{ 
    int a = 2; 
    cout << a << endl; 
    { 
     int a=7; 
     cout << a << endl; 
    } 
    cout << ++a << endl; 
} 

그리고 궁금 뭔가가 복잡하다? 아니면 그냥 식별자를 복제? 또는 모든 곳의 중괄호는 특정 효과를 나타내며 오류없이 진행될 수 있습니까? 변수가 외부에 존재하지 않을 때 함수에서와 같습니다. 중괄호 블록 밖에있을 수 있습니까? 이 괄호는 무엇입니까?

+3

컴파일하려고 했습니까? – antlersoft

+6

나는 텍스트 편집기에서 코드를 입력하고 컴파일하고 실행하는 것처럼이 질문을 쓰는 데 많은 시간을 할애하여 실망했습니다. 이 간단한 행동으로 코드 조각을 실행하고 산출물을 검토하며 그 이유를 이해하려고 노력해야합니다. 이 호기심 많은 실험과 관찰은 컴퓨터 프로그래머의 근본적인 품질입니다. – paddy

+0

나는 어떤 상황에서 어떤 일이 일어나는지보기 위해 코드를 실행하는 것이 최선의 대답이라고 생각한다. –

답변

6

이 경우 중괄호는 변수의 범위를 구분합니다. inner braces는 기본적으로 새로운 변수 a을 선언하고 외부 변수를 숨 깁니다.

이는 등가이다 a 안쪽 범위에서 사용할 수없는 것을 제외

{ 
    int a=2; 
    cout<<a<<endl; 
    { 
    int b=7; cout<<b<<endl; 
    } 
    cout<<++a<<endl; 
} 

한다.

출력

중괄호
2 
7 
3 
1

새로운 범위를 형성 할 것이다. 내부 블록의 변수 a은 외부 블록의 a과 다른 변수입니다.