>  기사  >  백엔드 개발  >  `if(pointer != NULL)` 대신 `if(pointer)`를 사용하여 Null이 아닌 포인터를 확인하는 것이 안전합니까?

`if(pointer != NULL)` 대신 `if(pointer)`를 사용하여 Null이 아닌 포인터를 확인하는 것이 안전합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-04 01:01:03799검색

Is it Safe to Check for Non-Null Pointers with `if(pointer)` Instead of `if(pointer != NULL)`?

Null이 아닌 포인터 확인: if(pointer) 대 if(pointer != NULL)

질문:

기존 if(pointer != NULL) 대신 if(pointer)를 사용하여 포인터의 null이 아닌 상태를 확인하는 것이 허용됩니까?

답변:

예, 허용됩니다. if(포인터)를 사용하는 것은 널 포인터가 암시적으로 부울 값 false로 변환되는 반면 널이 아닌 포인터는 true로 변환되므로 안전합니다. 이 동작은 C 11 표준의 부울 변환 섹션에 정의되어 있습니다.

"산술, 범위가 지정되지 않은 열거형, 포인터 또는 멤버 유형에 대한 포인터의 prvalue는 bool 유형의 prvalue로 변환될 수 있습니다. 0 value, null 포인터 값 또는 null 멤버 포인터 값은 false로 변환됩니다. std::nullptr_t 유형의 prvalue는 bool 유형의 prvalue로 변환될 수 있습니다."

위 내용은 `if(pointer != NULL)` 대신 `if(pointer)`를 사용하여 Null이 아닌 포인터를 확인하는 것이 안전합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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