728x90
C 언어 학습: 연산자
C 언어에서 연산자는 변수와 값을 조작하기 위한 중요한 도구입니다. 이번 글에서는 산술 연산자, 관계 연산자, 논리 연산자, 비트 연산자, 할당 연산자, 그리고 기타 연산자(sizeof, 삼항 연산자 등)에 대해 알아보겠습니다.
1. 산술 연산자
산술 연산자는 기본적인 수학 연산을 수행하는 데 사용됩니다. C 언어에서 사용되는 산술 연산자는 다음과 같습니다.
- + (더하기) : 두 값을 더합니다.
- - (빼기) : 두 값을 뺍니다.
- * (곱하기) : 두 값을 곱합니다.
- / (나누기) : 두 값을 나눕니다.
- % (나머지) : 두 값을 나눈 나머지를 구합니다.
예제
[c]
#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;
}
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;
}
2. 관계 연산자
관계 연산자는 두 값을 비교하는 데 사용됩니다. 결과는 참(1) 또는 거짓(0)으로 나타납니다. 주요 관계 연산자는 다음과 같습니다.
- == (같다) : 두 값이 같으면 참입니다.
- != (같지 않다) : 두 값이 다르면 참입니다.
- > (크다) : 왼쪽 값이 오른쪽 값보다 크면 참입니다.
- < (작다) : 왼쪽 값이 오른쪽 값보다 작으면 참입니다.
- >= (크거나 같다) : 왼쪽 값이 오른쪽 값보다 크거나 같으면 참입니다.
- <= (작거나 같다) : 왼쪽 값이 오른쪽 값보다 작거나 같으면 참입니다.
예제
[c]
#include <stdio.h>
int main() {
int a = 5, b = 10;
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);
printf("a <= b: %d\n", a <= b);
return 0;
}
int main() {
int a = 5, b = 10;
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);
printf("a <= b: %d\n", a <= b);
return 0;
}
3. 논리 연산자
논리 연산자는 논리적인 조건을 판단하는 데 사용됩니다. 주요 논리 연산자는 다음과 같습니다.
- && (AND) : 두 조건이 모두 참이면 참입니다.
- || (OR) : 두 조건 중 하나라도 참이면 참입니다.
- ! (NOT) : 조건이 참이면 거짓, 거짓이면 참입니다.
예제
[c]
#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;
}
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;
}
4. 비트 연산자
비트 연산자는 비트 단위로 연산을 수행합니다. 주요 비트 연산자는 다음과 같습니다.
- & (AND) : 두 비트가 모두 1이면 1입니다.
- | (OR) : 두 비트 중 하나라도 1이면 1입니다.
- ^ (XOR) : 두 비트가 서로 다르면 1입니다.
- ~ (NOT) : 비트를 반전시킵니다.
- << (왼쪽 시프트) : 비트를 왼쪽으로 이동시킵니다.
- >> (오른쪽 시프트) : 비트를 오른쪽으로 이동시킵니다.
예제
[c]
#include <stdio.h>
int main() {
unsigned char a = 5, b = 9;
printf("a & b: %d\n", a & b);
printf("a | b: %d\n", a | b);
printf("a ^ b: %d\n", a ^ b);
printf("~a: %d\n", ~a);
printf("a << 1: %d\n", a << 1);
printf("a >> 1: %d\n", a >> 1);
return 0;
}
int main() {
unsigned char a = 5, b = 9;
printf("a & b: %d\n", a & b);
printf("a | b: %d\n", a | b);
printf("a ^ b: %d\n", a ^ b);
printf("~a: %d\n", ~a);
printf("a << 1: %d\n", a << 1);
printf("a >> 1: %d\n", a >> 1);
return 0;
}
5. 할당 연산자
할당 연산자는 변수에 값을 할당하는 데 사용됩니다. 주요 할당 연산자는 다음과 같습니다.
- = : 오른쪽 값을 왼쪽 변수에 할당합니다.
- += : 왼쪽 변수에 오른쪽 값을 더한 후 할당합니다.
- -= : 왼쪽 변수에서 오른쪽 값을 뺀 후 할당합니다.
- *= : 왼쪽 변수에 오른쪽 값을 곱한 후 할당합니다.
- /= : 왼쪽 변수를 오른쪽 값으로 나눈 후 할당합니다.
- %= : 왼쪽 변수에 오른쪽 값의 나머지를 할당합니다.
예제
[c]
#include <stdio.h>
int main() {
int a = 10;
a += 5; // a = a + 5
printf("a += 5: %d\n", a);
a -= 3; // a = a - 3
printf("a -= 3: %d\n", a);
a *= 2; // a = a * 2
printf("a *= 2: %d\n", a);
a /= 4; // a = a / 4
printf("a /= 4: %d\n", a);
a %= 3; // a = a % 3
printf("a %%= 3: %d\n", a);
return 0;
}
int main() {
int a = 10;
a += 5; // a = a + 5
printf("a += 5: %d\n", a);
a -= 3; // a = a - 3
printf("a -= 3: %d\n", a);
a *= 2; // a = a * 2
printf("a *= 2: %d\n", a);
a /= 4; // a = a / 4
printf("a /= 4: %d\n", a);
a %= 3; // a = a % 3
printf("a %%= 3: %d\n", a);
return 0;
}
6. 기타 연산자 (sizeof, 삼항 연산자 등)
C 언어에는 몇 가지 특별한 연산자도 존재합니다.
- sizeof : 변수나 자료형의 크기를 바이트 단위로 반환합니다.
- 삼항 연산자 '? :' : 조건이 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환합니다.
예제
[c]
#include <stdio.h>
int main() {
int a = 10;
int b = (a > 5) ? 1 : 0; // 삼항 연산자
printf("sizeof(a): %zu\n", sizeof(a));
printf("b: %d\n", b);
return 0;
}
int main() {
int a = 10;
int b = (a > 5) ? 1 : 0; // 삼항 연산자
printf("sizeof(a): %zu\n", sizeof(a));
printf("b: %d\n", b);
return 0;
}
- sizeof(a) : 변수 a의 크기를 출력합니다.
- 삼항 연산자 '? :' : 를 사용하여 조건이 참인지 여부에 따라 다른 값을 b에 할당합니다.
이번 글에서는 C 언어의 다양한 연산자에 대해 알아보았습니다. 다음 시간에는 조건문과 반복문에 대해 자세히 다뤄보겠습니다. C 언어 학습에 많은 도움이 되길 바랍니다. Happy Coding!
728x90
'프로그래밍 > C' 카테고리의 다른 글
[C] 6. C언어의 "배열과 문자열" (0) | 2024.06.12 |
---|---|
[C] 5. C언어의 "함수" (0) | 2024.06.12 |
[C] 4. C언어의 "조건문과 반복문" (0) | 2024.06.12 |
[C] 2. C언어의 "기본 문법" (0) | 2024.06.12 |
[C] 1. C언어의 "기초 개념" (1) | 2024.06.12 |