>백엔드 개발 >C++ >C 포인터: NULL, 0 또는 nullptr – 어느 것을 사용해야 합니까?

C 포인터: NULL, 0 또는 nullptr – 어느 것을 사용해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-10 06:23:17535검색

C   Pointers: NULL, 0, or nullptr – Which Should I Use?

C의 포인터: NULL 대 0

C 초기 단계에서는 NULL을 널 포인터로 사용하는 것이 다음으로 제한되었습니다. 무효 포인터로 인해 실용성이 떨어집니다. 결과적으로 프로그래머는 널 포인터를 표시하기 위해 0(영)을 사용하는 규칙을 채택했습니다.

0의 명명된 표현으로 NULL이 도입되었음에도 불구하고 어떤 것을 사용할지에 대한 논쟁은 계속되고 있습니다. 일부 프로그래머는 논리 연산자(예: if (p && !q) do_something())를 사용하여 포인터를 진리값으로 테스트하는 기능을 언급하면서 0을 주장합니다. 그들은 NULL을 사용하려면 NULL에 대한 명시적인 비교가 필요하거나 NULL이 0과 같다는 가정에 의존해야 한다고 주장합니다.

다른 사람들은 NULL을 옹호하며, NULL이 0으로 정의되기 때문에 단지 미학적 차이일 뿐이라는 Bjarne Stroustrup의 견해를 반영합니다. C에서. Stroustrup은 또한 NULL이 0이나 정수가 아닌 것과 구별되는 실수로 처리될 때 혼란이 발생할 수 있음을 강조합니다.

어느 접근 방식이든 논쟁의 여지가 있지만 Stroustrup은 사소한 세부 사항에 대해 과도한 관심을 갖지 말 것을 촉구합니다. RAII 및 예외 시대에는 널 포인터가 덜 자주 사용되지만 가끔 필요한 경우는 남아 있습니다.

명명된 표현을 선호하는 사람들을 위해 C 11에서는 널 포인터에 대한 지정 키워드로 nullptr을 도입했습니다. 이 권장 사항은 널 포인터를 다른 정수 값과 구별하고 혼동 가능성을 제거하는 데 도움이 됩니다. 궁극적으로 NULL과 0 또는 nullptr 중 하나를 선택하는 것은 두 접근 방식 사이에 객관적인 우월성이 없기 때문에 개인 취향에 달려 있습니다.

위 내용은 C 포인터: NULL, 0 또는 nullptr – 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.