반응형
논리 연산자
&&, ||
(5 < 2) && (3 == 2)
&&연산자의 앞 논리 값(5 < 2)을 평가하여 0이면, 이 연산자는 더 이상 뒤의 논리 값(3 == 2)을 평가하지 않고, 논리 연산 &&의 평가 결과를 0으로 결정
(5 > 2) || (3 == 2)
||연산자의 앞 논리 값(5 >2)을 평가하여 1이면, 이 연산자는 더 이상 뒤의 논리 값(3 == 2)을 평가하지 않고, 논리 연산 &&의 평가 결과를 1로 결정
조건 연산자
exp1 ? exp2 : exp3
exp1이 0이 아닌 값(참)이면 exp2이 선택됨
exp1이 0(거짓)이면 exp3이 선택됨
비트 논리 연산자 (비트 단위로 논리연산을 수행)
&(and), |(or), ^(xor), ~(not)
이동 연산자
<<(왼쪽 이동 연산자), >>(오른쪽 이동 연산자)
<<은 왼쪽으로 옮기고 오른쪽 빈자리는 모두 무조건 0으로 채움
>>은 오른쪽으로 옮기고 왼쪽 빈자리는 모두 부호비트(최상위 비트)로 채움
비트 마스크
콤마 연산자(,)
연산자의 순위에서 가장 낮은 연산자는 콤마 연산자이다. 콤마(쉼표)연산자는 좌에서 우로 수행하며, 그 반환 값은 마지막에 수행한 연산의 결과
int x;
x = 3+4, 5-10; //<= (x = 3+4), 5-10;
printf("%d\n", x); //출력 값은 7
x = (3+4, 5-10);
printf("%d\n", x); //출력 값은 -5
반응형