, 예기치 않게 나는 어떤 독방 감금 오류하지 않았다. 그러나 내가 p
과 *p
의 순서를 if()
(예 : 댓글에서)로 변경하면 seg 오류가 발생합니다.null 포인터 디 레퍼런스에 segfault가없는 이유는 무엇입니까?</p> <pre><code>int main() { int *p = NULL; if (p && *p); //if (*p && p); return 0; } </code></pre> <p>나는이 코드를 실행 나는이 간단한 C 코드를 작성했습니다
누군가 설명 할 수 있습니까?
첫 번째는 표준 ideom입니다. 당신이 조금 연구를했다면 당신 자신을 알았을 것입니다. 아니면'&&'연산자에 대한 설명을 읽었습니까? 하지만 처음에는 묻는 것이 배움보다 쉽습니다. 레. 두 번째 변형 ('* p %% p') : 왜 세그 폴트를 기대합니까? 정의되지 않은 동작을 호출합니다. ** undefined **라는 단어의 의미에 대해 생각해보십시오. – Olaf