참조에 대한 NULL 포인터 역참조
C 표준은 참조를 얻기 위해 NULL 포인터를 역참조하는 동작을 명시적으로 다룹니다. 이 관행은 정의되지 않은 동작으로 간주됩니다.
제공된 예에서:
NULL 포인터 ptr의 역참조 시도는 정의되지 않은 동작으로 간주됩니다. 표준(8.3.2/4 "참조")에 따르면:
참고: 특히 잘 정의된 프로그램에는 null 참조가 존재할 수 없습니다. 이러한 참조는 null 포인터를 역참조하여 얻은 "객체"에 바인딩하는 것이며, 이로 인해 정의되지 않은 동작이 발생합니다.
따라서 참조를 역참조된 NULL 포인터는 유효하지 않으며 동작이 잘 정의되어 있지 않습니다. 역참조된 NULL 포인터에서 얻은 참조를 가리키는 ptr2를 사용한 결과도 정의되지 않습니다.
NULL 포인터 역참조 금지에 대한 한 가지 예외는 sizeof 연산자와 함께 사용될 때입니다. 이 컨텍스트에서는 포인터가 실제로 평가되지 않으므로 포인터를 역참조해도 정의되지 않은 동작이 발생하지 않습니다. 단, 이 예외는 sizeof 연산자로 제한됩니다.
위 내용은 C에서 참조에 대한 NULL 포인터를 역참조하면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!