C언어 4장: 연산자 완전 정복
1. 증감 연산자 (Increment / Decrement)
증감 연산자는 변수의 값을 1씩 증가시키거나 감소시킬 때 사용합니다.
++
: 변수 값을 1 증가 (예:i++
,++i
)--
: 변수 값을 1 감소 (예:i--
,--i
)
증감 연산자는 변수 앞에 붙을 때 (전위 연산자)와 뒤에 붙을 때 (후위 연산자)에 따라 동작 순서가 다릅니다.
int i = 5;
printf("%d\n", i++); // 출력: 5 (출력 후 i는 6)
printf("%d\n", ++i); // 출력: 7 (먼저 증가 후 출력)
2. 대입 연산자 (Assignment Operators)
값을 변수에 저장하거나 기존 변수 값에 연산을 결합할 때 사용합니다.
=
: 단순 대입 (예:a = 10;
)+=
: 더한 후 대입 (예:a += 5; // a = a + 5;
)-=
: 뺀 후 대입 (예:a -= 3; // a = a - 3;
)
3. 산술 연산자 (Arithmetic Operators)
수학적인 계산에 쓰이는 연산자입니다.
+
: 덧셈-
: 뺄셈*
: 곱셈/
: 나눗셈 (정수 나눗셈은 몫만 반환)%
: 나머지 연산 (모듈로 연산)
예시:
int a = 10, b = 3;
printf("a + b = %d\n", a + b); // 13
printf("a / b = %d\n", a / b); // 3 (몫)
printf("a % b = %d\n", a % b); // 1 (나머지)
4. 관계 연산자 (Relational Operators)
두 값의 관계를 비교하여 참 또는 거짓(1
또는 0
)을 반환합니다.
>
: 크다<
: 작다==
: 같다!=
: 같지 않다>=
: 크거나 같다<=
: 작거나 같다
예시:
int x = 5, y = 10;
printf("%d\n", x > y); // 0 (거짓)
printf("%d\n", x != y); // 1 (참)
5. 논리 연산자 (Logical Operators)
조건문에서 여러 조건을 결합할 때 사용합니다.
&&
: 그리고 (AND)||
: 또는 (OR)!
: 부정 (NOT)
예시:
int a = 5, b = 10;
if (a < 10 && b > 5) {
printf("조건 만족\n");
}
6. 비트 연산자 (Bitwise Operators)
정수형 데이터를 비트 단위로 조작할 때 사용합니다.
&
: 비트 AND|
: 비트 OR^
: 비트 XOR (배타적 OR)~
: 비트 NOT (반전)<<
: 왼쪽 시프트 (비트 이동)>>
: 오른쪽 시프트 (비트 이동)
예시:
unsigned char a = 0b10101010;
unsigned char b = 0b11001100;
printf("AND: %02X\n", a & b); // 0x80
printf("OR: %02X\n", a | b); // 0xBA
printf("XOR: %02X\n", a ^ b); // 0x3A
printf("NOT a: %02X\n", ~a); // 0x55
7. 조건 연산자 (삼항 연산자)
조건문을 간단히 표현하는 연산자로?: 기호를 사용합니다.
형식: 조건? 참일 때 값 : 거짓일 때 값;
예를 들어, 두 수 중 큰 값을 구할 때 사용:
int x = 10, y = 20;
int max = (x > y) ? x : y;
printf("큰 값은 %d\n", max); // 20 출력
8. 자료형 변환 (Type Conversion)
C언어에서 서로 다른 자료형끼리 연산하면 자동으로 변환이 일어납니다.
예를 들어, int
와 double
이 더해지면 int
값이 double
로 변환되어 연산됩니다.
int a = 5;
double b = 3.2;
double result = a + b; // a가 double로 변환되어 8.2가 됨
이러한 암묵적 형변환을 이해하는 것은 정확한 계산과 오류 방지에 중요합니다.
이번 장에서는 C언어의 다양한 연산자들을 체계적으로 정리했습니다.
증감, 대입, 산술, 관계, 논리, 비트 연산자부터 조건 연산자와 자료형 변환까지
각 연산자의 특징과 예제를 통해 확실히 이해할 수 있도록 구성했습니다.
앞으로 코딩할 때 꼭 참고해서 연산자에 대한 개념을 탄탄히 다지시길 바랍니다!
반응형
'과목공부 > C언어' 카테고리의 다른 글
[C언어] C언어 배열 완전 정복 – 1차원과 2차원 배열의 이해와 활용 (0) | 2025.06.14 |
---|---|
[C언어] C언어 반복문 완전 정복 – While문, Do-while문, For문과 제어문 (0) | 2025.06.14 |
[C언어] 조건문과 제어문 완벽 이해하기 - If, Switch, Goto (0) | 2025.06.14 |
[C언어] C언어 기본 자료형과 상수, 메모리 크기 이해하기 (0) | 2025.06.14 |
[C언어] 변수 자료형과 출력 형식 지정자 완벽 정리 (1) | 2025.06.13 |