=! 연산자는 뭔가요?


!=가 아니라 =!묻는거에요.

심지어 밑의 코드에서 a는 값을 할당하지도 않았는데 왜 false가 나는 건가요?

소스코드

int main(){
    int a;
    int b = 3;

    if( a =! b) { //false를 return
        cout << "a =! b is true!" << endl;
    }
    else {
        cout << "a =! b is false!" << endl;
    }
}

결과 : a =! b is false!

  • 2016년 01월 18일에 작성됨

조회수 195


1 답변


좋아요
1
싫어요
채택취소하기

=! 연산자가 아니라 =! 두개의 연산자가 있는 겁니다. 그냥 헷갈리게 적어 놓은것 뿐이에요.

코드를 풀어쓰면

int main(){
    int a;
    int b = 3;

    a = !b
    if(a) { //false
        cout << "a =! b is true!" << endl;
    }
    else {
    cout << "a =! b is false!";
    }
}

랑 똑같습니다.

a = !b에서

  • b0이 아니라서 -> b는 true
  • !b -> !true -> false
  • a = false 이렇게 진행 된거죠.

사실, 아주 옛날 옛날엔 5번째 UNIX edition을 쓰던 시절에는 C에는 =!이 지금의 !=(같지 않음)으로 쓰였습니다. 지금 C에서는 쓰지 않지만요.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close