옆히

NULL vs nullptr 본문

개인공부용1/etc

NULL vs nullptr

옆집히드라 2024. 9. 2. 02:19

NULL은 C언어에서 유래된 매크로로 #define NULL 0 으로 정의되었다

-> 함수의 오버로딩을 사용할 때 NULL을 전달하면 포인터와 정수형 타입간의 혼동이 발생한다

 

nullptr은 C++ 11에서 도입된 키워드로 포인터 타입과 호환되는 null 포인터 상수를 나타낸다. 혼동 발생 x

 

#include <iostream>

void foo(int x) {
    std::cout << "int version called: " << x << std::endl;
}

void foo(int* p) {
    std::cout << "pointer version called" << std::endl;
}

int main() {
    foo(0);    // int version called: 0
    foo(NULL); // int version called: 0 (int 타입으로 해석됨)
    foo(nullptr); // pointer version called (포인터 타입으로 해석됨)
}

'개인공부용1 > etc' 카테고리의 다른 글

this 메모  (0) 2024.08.29
얄코의 TOO MUCH 친절한 깃&깃허브  (0) 2024.06.14
이득우의 게임 수학  (1) 2024.01.31