c 언어/c 언어 문법

C 언어의 연산자

임베디드 친구 2024. 12. 12. 15:33
728x90
반응형

C 언어의 연산자

C 언어는 효율적이고 강력한 프로그래밍 언어로, 다양한 연산자를 제공하여 프로그래머가 논리적이고 수학적인 작업을 수행할 수 있게 해줍니다. 이번 글에서는 C 언어의 다양한 연산자를 다루고, 각 연산자의 사용법과 예제를 통해 이해를 돕고자 합니다.


1. 연산자란 무엇인가?

연산자는 변수와 상수에 대해 특정 작업을 수행하는 기호나 키워드를 의미합니다. 예를 들어, +는 덧셈을 수행하고, =는 값을 할당하는 역할을 합니다.

C 언어의 연산자는 크게 다음과 같은 카테고리로 분류됩니다:

  1. 산술 연산자
  2. 할당 연산자
  3. 증감 연산자
  4. 관계 연산자
  5. 논리 연산자
  6. 비트 연산자
  7. 조건부 연산자
  8. 기타 연산자

2. 산술 연산자

산술 연산자는 기본적인 수학적 계산을 수행하는 연산자입니다.

연산자 설명 예제
+ 덧셈 a + b
- 뺄셈 a - b
* 곱셈 a * b
/ 나눗셈 a / b
% 나머지 a % b

예제 코드

#include <stdio.h>

int main() {
    int a = 10, b = 3;
    printf("a + b = %d\n", a + b);
    printf("a - b = %d\n", a - b);
    printf("a * b = %d\n", a * b);
    printf("a / b = %d\n", a / b);
    printf("a %% b = %d\n", a % b);
    return 0;
}

3. 할당 연산자

할당 연산자는 변수에 값을 할당하거나 연산 후 값을 다시 할당합니다.

연산자 설명 예제
= 단순 할당 a = b
+= 덧셈 후 할당 a += b
-= 뺄셈 후 할당 a -= b
*= 곱셈 후 할당 a *= b
/= 나눗셈 후 할당 a /= b
%= 나머지 연산 후 할당 a %= b

예제 코드

#include <stdio.h>

int main() {
    int a = 10;
    a += 5;  // a = a + 5
    printf("a += 5: %d\n", a);
    a -= 2;  // a = a - 2
    printf("a -= 2: %d\n", a);
    return 0;
}

4. 증감 연산자

증감 연산자는 변수의 값을 1씩 증가하거나 감소시킵니다.

연산자 설명 예제
++ 1 증가 ++a, a++
-- 1 감소 --a, a--

예제 코드

#include <stdio.h>

int main() {
    int a = 5;
    printf("++a: %d\n", ++a);  // 전위 증가
    printf("a++: %d\n", a++);  // 후위 증가
    printf("현재 a: %d\n", a);
    return 0;
}

5. 관계 연산자

관계 연산자는 두 값 간의 비교를 수행하고, 결과를 참(1) 또는 거짓(0)으로 반환합니다.

연산자 설명 예제
== 같음 a == b
!= 같지 않음 a != b
< 작음 a < b
> a > b
<= 작거나 같음 a <= b
>= 크거나 같음 a >= b

예제 코드

#include <stdio.h>

int main() {
    int a = 10, b = 20;
    printf("a == b: %d\n", a == b);
    printf("a != b: %d\n", a != b);
    printf("a < b: %d\n", a < b);
    return 0;
}

6. 논리 연산자

논리 연산자는 논리적 참과 거짓을 판단합니다.

연산자 설명 예제
&& 논리 AND a && b
|| 논리 OR a || b
! 논리 NOT !a

예제 코드

#include <stdio.h>

int main() {
    int a = 1, b = 0;
    printf("a && b: %d\n", a && b);
    printf("a || b: %d\n", a || b);
    printf("!a: %d\n", !a);
    return 0;
}

7. 비트 연산자

비트 연산자는 데이터의 비트 단위로 작업합니다.

연산자 설명 예제
& 비트 AND a & b
| 비트 OR a | b
^ 비트 XOR a ^ b
~ 비트 NOT ~a
<< 비트 왼쪽 시프트 a << 2
>> 비트 오른쪽 시프트 a >> 2

예제 코드

#include <stdio.h>

int main() {
    int a = 5;  // 0101
    int b = 3;  // 0011
    printf("a & b: %d\n", a & b);  // AND 연산
    printf("a | b: %d\n", a | b);  // OR 연산
    printf("a ^ b: %d\n", a ^ b);  // XOR 연산
    printf("~a: %d\n", ~a);       // NOT 연산
    return 0;
}

8. 조건부 연산자

조건부 연산자는 삼항 연산자로도 불리며, 조건에 따라 값을 반환합니다.

연산자 설명 예제
? : 조건 ? 참일 때 값 : 거짓일 때 값 a > b ? a : b

예제 코드

#include <stdio.h>

int main() {
    int a = 10, b = 20;
    int max = (a > b) ? a : b;
    printf("더 큰 값: %d\n", max);
    return 0;
}

9. 기타 연산자

C 언어에는 다음과 같은 특별한 연산자도 존재합니다:

연산자 설명 예제
sizeof 데이터 타입 또는 변수의 크기 sizeof(int)
& 주소 연산자 &a
* 포인터 연산자 *ptr

예제 코드

#include <stdio.h>

int main() {
    int a = 10;
    printf("int 크기: %lu bytes\n", sizeof(int));
    printf("a의 주소: %p\n", &a);
    return 0;
}

마무리

이번 글에서는 C 언어의 다양한 연산자를 소개하고, 각각의 예제를 통해 실습해 보았습니다. C 언어의 연산자를 잘 활용하면 복잡한 작업도 간단하고 효율적으로 처리할 수 있습니다.

728x90
반응형