[완료]C/C++ 블록위치에 따른 참조 관련

richjaff의 이미지

아래 코드에서 C위치에서 B위치에 있는 변수를 참조하려고 합니다.
전역 변수 부분은 참조가 잘 되지만, 바로 전단계의 변수를 참조하려면,
즉, C에서 B위치를 참조하려면 어떻게 해야하나요?

#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int a=10;  // A.
 
int main(int argc, char *argv[])
{
	int a=20; // B.
 
	{
		int a = 2;  // C.
		cout << ::a << endl;
	}
 
	system("pause");	
	return 0;
}

klara의 이미지

변수이름을 바꾸는 수밖에 없습니다.

richjaff의 이미지

답변 감사드립니다.

전웅의 이미지

#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int a=10;  // A.
 
int main(int argc, char *argv[])
{
	int a=20; // B.
 
	{
		int c = a, a = c;  // C.
		cout << a << endl;
	}
 
	system("pause");	
	return 0;
}

좋지 않은 스타일이라 추천은 하지 않습니다.

--
Jun, Woong (woong.jun at gmail.com)
Web: http://www.woong.org (서버 공사중)

--
Jun, Woong (woong at gmail.com)
http://www.woong.org