C 언어에서 연산자는 데이터 조작과 논리를 구현하기 위한 핵심 도구입니다. 산술, 비교, 논리, 비트 연산자에 대해 살펴보겠습니다.
1. 산술 연산자 (Arithmetic Operators)
수학적 계산을 수행합니다.
+ | 덧셈 | a + b | a와 b의 합 |
- | 뺄셈 | a - b | a에서 b를 뺌 |
* | 곱셈 | a * b | a와 b의 곱 |
/ | 나눗셈 | a / b | a를 b로 나눔 |
% | 나머지 연산 | a % b | a를 b로 나눈 나머지 |
2. 비교 연산자 (Relational Operators)
두 값 간의 관계를 비교하고, 결과는 참(1) 또는 거짓(0)입니다.
== | 같음 | a == b | 참: a와 b가 같음 |
!= | 같지 않음 | a != b | 참: a와 b가 다름 |
> | 큼 | a > b | 참: a가 b보다 큼 |
< | 작음 | a < b | 참: a가 b보다 작음 |
>= | 크거나 같음 | a >= b | 참: a가 b 이상 |
<= | 작거나 같음 | a <= b | 참: a가 b 이하 |
3. 논리 연산자 (Logical Operators)
논리값(참 또는 거짓)을 결합하거나 부정합니다.
&& | 논리 AND | a && b | 참: 둘 다 참일 때만 참 |
|| | 논리 OR | a || b | 참: 하나라도 참일때 |
! | 논리 NOT | !a | 참: a가 거짓일 때 참 |
4. 비트 연산자 (Bitwise Operators)
값을 비트 단위로 연산합니다.
& | 비트 AND | a & b | a와 b의 대응 비트가 모두 1이면 1 |
| | 비트 OR | a | b | a와 b의 비트중 하나라도 1이면 1 |
^ | 비트 XOR | a ^ b | a와 b의 대응 비트가 다를 때 1 |
~ | 비트 NOT | ~a | a의 비트를 반전 |
<< | 왼쪽 시프트 | a << 2 | a를 왼쪽으로 2비트 이동 |
>> | 오른쪽 시프트 | a >> 2 | a를 오른쪽으로 2비트 이동 |
연산자우선순위 및 결합 방향
C 언어의 연산자 우선순위는 코드의 실행 순서를 결정하며, 동일한 우선순위를 가진 연산자는 결합 방향에 따라 처리됩니다. 아래는 주요 연산자의 우선순위를 정리한 표입니다.
1 | () [] -> . | 괄호, 배열, 구조체 접근 | 왼쪽 → 오른쪽 |
2 | ++ -- + - ! ~ | 단항 연산자 (전위, 부정, 비트 반전 등) | 오른쪽 → 왼쪽 |
3 | * / % | 곱셈, 나눗셈, 나머지 | 왼쪽 → 오른쪽 |
4 | + - | 덧셈, 뺄셈 | 왼쪽 → 오른쪽 |
5 | << >> | 비트 시프트 | 왼쪽 → 오른쪽 |
6 | < <= > >= | 관계 연산자 | 왼쪽 → 오른쪽 |
7 | == != | 같음, 다름 | 왼쪽 → 오른쪽 |
8 | & | 비트 AND | 왼쪽 → 오른쪽 |
9 | ^ | 비트 XOR | 왼쪽 → 오른쪽 |
10 | | | 비트 OR | 왼쪽 → 오른쪽 |
11 | && | 논리 AND | 왼쪽 → 오른쪽 |
12 | || | 논리 OR | 왼쪽 → 오른쪽 |
13 | ?: | 삼항 연산자 | 오른쪽 → 왼쪽 |
14 | = += -= *= /= %= | 대입 및 복합 대입 연산자 | 오른쪽 → 왼쪽 |
15 | , | 쉼표 연산자 | 왼쪽 → 오른쪽 |
연산자는 코드의 논리와 기능을 구현하는 핵심 도구입니다. 다양한 연산자를 이해하고 적재적소에 활용하면 효율적이고 간결한 코드를 작성할 수 있습니다.
'C' 카테고리의 다른 글
C) 제어문: 조건문, 반복문 (0) | 2024.11.28 |
---|---|
C) 변수와 자료형 (0) | 2024.11.23 |
C) 개발 환경 설정: 컴파일러 설치 및 설정 (1) | 2024.11.22 |
C) C 언어 소개 (0) | 2024.11.22 |
C 언어로 OOP 스타일의 Stack 구현하기 (0) | 2024.11.22 |