C언어 논리연산자 질문..

글쓴이2016.10.24 01:54조회 수 643댓글 4

    • 글자 크기

int a=10

int b

 

b = ( !a) ;

 

printf("b: %d \n", b) ;

 

라고 했을때

모니터에 0이 나타나는걸로 알고있는데

b = ( !a) 구문이 이해가 가지 않습니다..

!연산자는 참이면 거짓으로, 거짓이면 참으로 바꾸는 연산인데 b = ( !a) 가 참 거짓을 판단할수있는 구문인가요...?? 

    • 글자 크기

댓글 달기

  • int형은 0이 아니면 모든 true로 취급됩니다.
    따라서 10은 True죠
    ! 연산자는 참거짓을 바꾸는 연산자에요.
    그러면 !a는 false(0)가 됩니다.
    int 형으로 출력하니 0이 나오는 건 당연합니다!
  • @저렴한 쪽동백나무
    아..!! 감사합니다. 제가 C언어 베이스가 없어서 ㅠㅠ
    int a=10
    int b
    b = a ;
    printf("b: %d \n", b) ;

    라고 입력하면 모니터에 1이 뜨는건가요?
    제가 직접 쳐보면 되는데 컴퓨터에 C언어가 안깔려있어서 ㅠㅠ 죄송합니다..!
  • @저렴한 쪽동백나무
    아! b=a 는 논리연산자가 아니라 그냥 a를 b에 저장하는 의미겠네요..!
  • @글쓴이
    네, 그냥 10이 나오죠!
첨부 (0)