인프런 커뮤니티 질문&답변
25분 01초경 중괄호 안 x=1
해결된 질문
작성
·
219
1
중괄호 안에서만 x=1이 쓰이고나서
중괄호 밖으로 나오면 다시 main문의 x가 쓰여야하는 것아닌가요? 왜 계속 중괄호 한의 1이 사용되는지 헷갈립니다
답변 2
1
아..
<code>
#include <iostream>
using namespace std;
int main()
{
int x = 0;
cin >> x;
if (x > 10);
{
x = 1;
}
cout << x << endl;
return 0;
}
<output>
PS C:\coding\tbcpp_review\Chapter8> g++ .\ex.cpp
PS C:\coding\tbcpp_review\Chapter8> .\a.exe
6
1
PS C:\coding\tbcpp_review\Chapter8> .\a.exe
2
1
if (x > 10);
;으로 if문이 끝나버려서
{
x = 1;
}
어떤 값을 입력하더라도 x = 1; 이 됩니다.
블록안에서 같은 이름으로 새롭게 변수 선언을 하지 않으면
블록밖의 같은 이름의 변수에 값을 대입(네임하이딩?)하는 것 이기 때문에 그런 거 아닐까요?
감사합니다.
0
홍정모
지식공유자
초보 때는 name hiding이나 scope에서 실수를 많이 합니다. 코드 전체를 보기 전에는 알기가 어려운 문제인데, 아마 사소한 실수를 하셨을 가능성이 높아보입니다.





