Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[5011] 소스 설명좀 부탁드립니다 논리연산자
kcr [] 1464 읽음    2005-04-12 02:41
void main()
{

int a =5, b=3, c=1,d;



1)   d = (a = a-2) || (b = b-1);


printf("d= %d a=%d b=%d\n",d,a,b);



2)    d = (a = a-3) && (c = c+3);


printf("d=%d a=%d c=%d\n",d,a,c);



}



결과값은 d=1 a=3 b=3

             d=0 a=0 c=1



여기서 1) d=(a=a-2) || (b=b-1)

a는 5-2 이니 a=3이되고 ||는 좌변이참이면 우변은 연산안해서 b는 그대로 b는3이 되는데

여기서 d값이 1 인 왜참이되는거죠? 1)라인에서 계산이 어떻게 이뤄지는지 모르겠네요

d= (a는 3이되었고) || (b는 a가 참값이라서 연산을안해서 3이고) a=3이 왜 참인지



2)라인도 마찬가지입니다 이 질문과



d=(a=a-3) && (c=c+3)

a=3-3라서 0되고 && 좌변이거짓이면 우변은 연산안해서 c는 1이되고 a가 왜거짓인지?

+ -

관련 글 리스트
5011 소스 설명좀 부탁드립니다 논리연산자 kcr 1464 2005/04/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.