darkprince   3년 전

strcmp 앞에 !가 붙어있는데 !가 부정연산자인것은 알고 있습니다. 

하지만 이해가 되지 않는것은 어떻게 !가 저곳에 사용 될 수 있는가 입니다. ! 를 빼고나니 코딩이 이상해지더군요 

저는if (0 == strcmp(str, "push"))이것으로 풀었는데요. 이것은 둘이 같으면 strcmp가 0을 뱉음으로써 0 == 이 성립한다는 것은 

알고있었지만 !를 쓰는 경우는 처음봤습니다. 그리고 아무리 생각해도 구조가 이해가되지 않습니다.

!를 쓸때 원리 , 구조가 어떻게 되나요?

scvhero   3년 전

strcmp가 0을 리턴하면(두 문자열이 일치하면) !0가 돼서 1이 되고

그 외의 값을 리턴하면 (두 문자열이 일치하지 않으면 ) !(0이 아닌 값)이 돼서 0이 됩니다

darkprince   3년 전

감사합니다. 말씀대로라면 프로그래밍에서 1이 참이고 0은 거짓인가요?

darkprince   3년 전

0이나와서 !로 1로 변환되고 1이나오면 0으로 변환되는 것은 인지 하고 있습니다...

의문점은 왜 1이어야하는가가 의문입니다..

scvhero   3년 전

조건문 블럭에서 0은 거짓이고 0 이외의 값은 참이죠

darkprince   3년 전

검색하다 찾았습니다. while 문에선 1은 참이고 0은 거짓이군요 0은 실행이되지않네요. 

키워드는 c++ 1과0으로 검색했습니다

darkprince   3년 전

답변을 달아주셨네요 10초전에 ㅎㅎ 감사합니다

darkprince   3년 전

ㅋㅋ 같은 성대출신

댓글을 작성하려면 로그인해야 합니다.