nullptr 은 뭐고 NULL은 뭘까?
nullptr은 C++11에서 추가된 것이다. 이것은 NULL을 대체하게끔 만들어졌다고 한다.
기존 NULL의 문제점은 다음의 소스 코드에서 확인하자.
1 2 3 4 5 6 | #include <iostream> int main() { std::cout << NULL << std::endl; //출력값 0 } | cs |
위의 코드에서 출력 결과 값은 0이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> void aa(int *) { std::cout << "aa(int *)" << std::endl; } void aa(int) { std::cout << "aa(int)" << std::endl; } int main() { aa(NULL); //출력값: aa(int) return 0; } | cs |
다음의 출력은 aa(int)이다.
이런 문제 때문에 NULL 대신 0을 쓰기도 한다.
이런 문제 때문에 nullptr이라는 상수가 추가돼었다.
반응형