/C
📌 산술연산자
- 연산자에도 당연히 우선순위가 있다. 이걸 전부 외우기보단 그때그때 참고하는 것이 좋다.
위 링크에서 산술연산자의 우선순위 확인이 가능하다.
📌 증감연산자
++x | 1 증가 -> 연산 진행 |
x++ | 연산 진행 -> 1 증가 |
--x | 1 감소 -> 연산 진행 |
x-- | 연산 진행 -> 1 감소 |
예제를 살펴보자.
int x = 10;
int y = x-- + 5 + --x;
printf("변수 x의 값은 %d이고 변수 y의 값은 %d입니다.\n", x, y);
//변수 x의 값은 10이고 변수 y의 값은 23입니다.
y값의 계산 순서를 살펴보자면,
x-- + 5 => x(10) + 5 (15) => 15-- (14)
14 + --x => 14 + 9 => 23
이런 순서로 이루어진다.
📌 논리연산자
- 참고로 C언어에서의 거짓은 0, 나머지(음수 포함)는 전부 true이다.
&& (AND) | || (OR) | ! (NOT) |
📌 비트연산자
- 비트 단위의 논리 연산을 책임진다.
& | 대응되는 비트가 모두 1이면 1을 반환한다. (AND) |
| | OR |
^ | XOR - 비트가 서로 다른 것을 체크한다. |
~ | NOT - 0이면 1을, 1이면 0을 반환한다. |
<< | left shift - 지정한 수만큼 비트들을 전부 왼쪽으로 이동시킨다. |
>> | right shift |
#include <stdio.h>
int main(void)
{
int num01 = 15;
int num02 = 8;
printf(" ~ 연산자에 의한 결괏값은 %d입니다.\n", ~num01); // 1의 보수
printf("<< 연산자에 의한 결괏값은 %d입니다.\n", num02 << 1); // 곱하기 2
printf(">> 연산자에 의한 결괏값은 %d입니다.\n", num02 >> 1); // 나누기 2
return 0;
}
(사실 이게 몬 소리인가 싶다... 다시 찾아봐야지)
📌 기타연산자
- 삼항연산자
조건식 ? 반환값1: 반환값2;
삼항연산자의 문법은 위와 같다. 조건식이 참일 경우 반환값1을 반환하고, 조건식이 거짓이라면 반환값2를 반환한다. 짧은 if/else문 대신 사용이 가능하다.
- sizeof 연산자: 피연산자의 크기를 바이트 단위로 반환한다. 이때 피연산자는 타입, 변수, 상수가 있다.
sizeof(피연산자);