본문 바로가기

개발공부/C++

전역변수와 정적변수

#include <iostream>

using namespace std;

int value = 123;

int main()
{
	cout << value << endl;
	int value = 1;	//namehiding
	cout << ::value << endl;	//global scope operator(::)
	cout << value << endl;
	return 0;
}
123
123
1

전역변수는 Scope를 항상 잘 염두하고 코딩해야한다.

void doSomething()
{	
	int a = 1;
	++a;
	cout << a << endl;
}

int main()
{
	doSomething();
	doSomething();
    
    return 0;
}
2
2

위 예제에서 static 키워드를 붙이면

void doSomething()
{
	static int a = 1;
	++a;
	cout << a << endl;
}

int main()
{
	doSomething();
	doSomething();
    
    return 0;
}
2
3

static을 선언하면 같은 메모리(주소)를 사용하기 때문에 항상 초기화가 먼저 되어야 쓸 수 있다.

'개발공부 > C++' 카테고리의 다른 글

참조변수 reference variable  (0) 2019.10.22
자료형에게 가명 붙여주기  (0) 2019.10.21
전처리기의 활용  (0) 2019.10.21
C++의 기초적인 사용법  (0) 2019.10.21
assignment와 initialization  (0) 2019.10.21