NULL 대 nullptr: Null 포인터 표현의 진화
C 0x에서는 전통적인 NULL 매크로가 nullptr로 대체되었습니다. 이러한 변화는 단순히 외관상만 그런 것이 아닙니다. 이는 언어의 널 포인터 처리에 상당한 개선을 가져왔습니다.
대체 이유는 무엇입니까?
0으로 정의된 NULL은 오버로드된 함수 해결에서 잠재적인 모호성을 야기했습니다. 다음 코드를 고려하십시오.
void f(int); void f(foo *);
f(NULL)를 호출하면 컴파일러는 f(int) 또는 f(void *)를 호출할지 확신할 수 없습니다. 이 모호성은 std::nullptr_t 유형을 갖고 암시적으로 모든 포인터 유형으로 변환할 수 있는 nullptr을 사용하여 해결됩니다.
nullptr의 이점
NULL과 비교, nullptr 작업할 때 여러 가지 이점을 제공합니다. 포인터:
위 내용은 NULL 대 nullptr: C의 널 포인터 표현이 변경된 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!