끄적이는 메모장

[C++11] nullptr 본문

C, C++, C#/C++ 공부

[C++11] nullptr

밥보92 2018. 5. 30. 13:23
반응형

#nullptr

 

기존 C++은 포인터 변수가 가리키는 주소가 없는 경우 NULL을 사용했다

void* p1 = 0;

0은 암시적으로 NULL을 의미함

 

만약 포인터를 인자로 받는 경우 NULL을 0으로 전달하는 경우 정수형 0으로 인식되는 문제가 발생할 수 있다.

 

즉 근복적으로 NULL 포인터의 값을 정수인 0을 사용했기 때문이고 C++11에서는 이를 해결 하기위하여 nullptr이 기존의 NULL을 대체하려고한다.

 

nullptr의 타입은 실제 nullptr_t이다. 즉, 정수형과 호환이 될 수 없다.

단, boolean과 호환이 가능하고 nullptr이 false로서 사용이 가능하다.

 

int main()

{

    int* p1 = nullptr;

    nullptr_t p2 = nullptr;

}

반응형

'C, C++, C# > C++ 공부' 카테고리의 다른 글

[C++11] make_shared  (0) 2018.05.30
[C++11] shared_ptr / weak_ptr  (0) 2018.05.30
[C++11] unique_ptr / smart pointer  (0) 2018.05.30
[C++11] static_assert  (0) 2018.05.30
[C++11] auto  (0) 2018.05.30