본문 바로가기
공부

C++ static & const 복습

by MY블로그 2022. 12. 1.

오늘 C++의 기초 를 마무리하면서 갑자기 static 그리고 const 의 정의에 대하여 약간의 혼동이 있었다.

확실히 다잡기위하여 다시 복습한다.

#include <iostream>
using namespace std;

int main()
{
	while(true) // static 변화값을 보기위한 반복문 생성
	{
		static int sNum = 0;
		const int cNum = 0;

		cout << "for를 돌기 전의 static 변수 : " << sNum << endl << endl;
		cout << "for를 돌기 전의 const 변수 : " << cNum << endl << endl;
		for (int i = 0; i < 5; i++)
		{
			sNum++;
			cout << "static 변수 : " << sNum << endl;

			//하지만 얘는 올라갈 수가 없다.
			//cNum++;

		}

		cout << endl;
		system("pause"); // 일시정지
	}

	return 0;
}

위의 코드를 참고하여 프로그램을 돌려보고 다시한번 두개의 차이점을 확인한다.

 

static

선언이 이루어진뒤 어느곳이든(전역,지역) 상관없이 값이 변동하게되면 메모리에 할당되어있는곳의 값이 초기화되지않고 바뀐 값으로 바뀔수 있으며 변경된 마지막 값이 프로그램이끝이 날 때까지 유지된다.

 

const

위의 코드에는 static만 확인이되는 이유는 똑같은 방식으로 const를 선언하면 오류가되기때문이다

그 이유는 const 는 한번 초기화하면 그값이 바뀌지 않게 하기위한 장치 이기 때문이다.

 

코드실행 결과

댓글