[c++] nullptr와 NULL의 차이
NULL
은 C++ 이전의 C 표준에서 사용되었으며, 매크로로 정의되었습니다. 일반적으로 정수 0 또는 정수로 형변환하여 사용됩니다. 이는 특정한 포인터 타입에 대해 사용되지 않고, 포인터의 값이 0임을 나타내는데 혼동을 줄 수 있습니다.
반면에 nullptr
는 C++11에서 새로 도입되었으며, nullptr
는 포인터 타입 지정에 대해 안전한 키워드로 취급됩니다. 즉, nullptr
는 어떤 포인터 타입에도 사용될 수 있고, 포인터가 아닌 유형에는 사용할 수 없습니다. 따라서 nullptr
는 포인터의 값이 없음을 명시적으로 나타내며, 특정한 타입을 지정하여 코드의 안정성을 높이는 데 도움이 됩니다.
따라서 새로운 코드를 작성할 때는 nullptr
를 사용하는 것이 좋으며, 기존 코드에서는 NULL
대신 nullptr
을 사용하도록 변경하는 것이 권장됩니다.
참고 문헌:
- https://en.cppreference.com/w/cpp/language/nullptr