C에서
p && *p
이런 코드가있으면
p가 null일때 && 뒤에값에 상관없이 결과는 어짜피 false가 되니까
*p 부분을 계산하지 않고 false 반환해버린다는건가?? 그래서 early termination??
컴공 전공자가 아니라 기초적인 질문해도 이해좀...
C에서
p && *p
이런 코드가있으면
p가 null일때 && 뒤에값에 상관없이 결과는 어짜피 false가 되니까
*p 부분을 계산하지 않고 false 반환해버린다는건가?? 그래서 early termination??
컴공 전공자가 아니라 기초적인 질문해도 이해좀...
아예 컴파일러가 p&&*p 부분을 무시해버릴껄 - return 0;
저게 if분기점이고 필드가 하나 달려 있다면 그 필드는 씹어버리고 컴파일 해보면 아예 빠져있을 것 - return 0;
&&은 and 계산인데, 만약 앞의 수식이 false면 뒤에 값과 상관없이 &&으로 묶인 전체 수식이 false가 되니까, 컴퓨터가 뒤에 수식을 계산안해서 early termination 이라고함. ||로 묶인 or 계산에서도 앞이 True면 똑같은 일이일어남
네끝이빤히보이는데더볼께있나요
오 감사합니다 프로그래밍 갤러리 사람들 천사인가봄 ㅠㅠ
저는천사맞읍니다