개발/C++

[C++] nullptr

hojak99 2016. 11. 29. 02:52

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이라는 상수가 추가돼었다.

반응형