오늘 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 는 한번 초기화하면 그값이 바뀌지 않게 하기위한 장치 이기 때문이다.
코드실행 결과
'공부' 카테고리의 다른 글
Win32 API 프로시저 / 메시지 / 메시지 루프 / 메시지 큐 (0) | 2022.12.03 |
---|---|
C++ 메모리영역 복습 (1) | 2022.12.01 |
C++ 함수 포인터 / 멤버 함수 포인터 (0) | 2022.11.30 |
C++ 생성자(복사,이동,push_back,emplace_back) (0) | 2022.11.30 |
C++ 파라미터와 인자의 차이점 (1) | 2022.11.30 |
댓글