프로그래머/CPP_강의정리

cpp Modern C++ nullptr이 생긴 이유

미역국마싯 2021. 11. 23. 19:45

nullptr

왜 생겼는지만 간단히 알아본다.

void Test(int a)
{
	cout << "Test(int)" << endl;
}

void Test(void* ptr)
{
	cout << "Test(*)" << endl;
}

nullptr 이전에는 null값을 나타내기 위해 0 또는 NULL을 사용했다.

int* ptr = 0;
int* ptr2 = NULL;

이때 NULL은 define으로 정의됐다.

#define NULL 0

즉, 0과 NULL은 같은 의미인 것을 알 수 있다.

 

nullptr이 만들어진 이유

1. 오동작 방지

Test(0);	// Test(int)
Test(NULL);	// Test(int)

Test(nullptr);	// Test(*)

0과 NULL은 우리가 생각했던 Test(void* ptr)을 실행할 수 없다. 

 

2. 가독성

이전에는 코드를 읽을 때 0을 보면 NULL 또는 정수 0, 둘 중에서 하나를 의미했다.

하지만 nullptr이 생기면서 이런 고민을 할 필요가 없어졌다.

 

 

 

출처

https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-1/dashboard

 

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의

시리즈를 원활하게 학습하기 위한 기초적인 C++ 문법들에 대해 학습합니다. 어셈블리 언어부터 시작해서 기본 C++ 문법, STL, C++11까지 핵심적인 내용을 압축해서 다루게 됩니다., - 강의 소개 | 인

www.inflearn.com

 

'프로그래머 > CPP_강의정리' 카테고리의 다른 글

cpp Modern C++ enum class  (0) 2021.11.24
cpp Modern C++ using  (0) 2021.11.24
cpp Modern C++ 중괄호 초기화  (0) 2021.11.23
cpp Modern C++ auto  (0) 2021.11.23
cpp algorithm 라이브러리  (0) 2021.11.23