#include <iostream>
int main()
{
int x = 123; //initialization
x = 4; // assignment
std::cout << x << std::endl;
return 0;
}
initialization과 assignment는 대입연산을 하기 때문에 내부적으로 같은 역할을 수행한다고 생각할 수 있지만
그렇지 않다. 초기화의 경우 변수 x가 메모리에 올라갈 시점(할당)부터 바로 123(literal)이 복사 되어 들어 가지만
assigment는 쓰레기값이 들어있는 상태에서 대입하게 된다.
int x(123); 와 같이 쓸 수도 있다.
그리고 초기화는 debug모드에서는 런타임에러가 뜨지만 release모드에선 0값으로 자동초기화되어 에러가 뜨지 않는다.
그러므로 더욱 더 초기화의 습관을 잘 들여야한다.
'개발공부 > C++' 카테고리의 다른 글
전처리기의 활용 (0) | 2019.10.21 |
---|---|
C++의 기초적인 사용법 (0) | 2019.10.21 |
포인터 복습 (0) | 2019.10.10 |
상수에 대한 참조자 (0) | 2019.10.10 |
래퍼런스의 도입 (0) | 2019.10.10 |