반응형
목 차
안녕하세요.
오늘은 C언어의 연산자에 대해 알아보도록 하겠습니다.
연산자
수나 식을 일정한 규칙에 의해 계산하기 위해서 연산자를 사용합니다.
산술 연산자
1. 이항연산자
피연산자를 덧셈, 뺼셈, 곱셈, 나눗셈, 나머지 연산을 말합니다.
연산자 | 설명 | 사용 |
+ | 더하기 | A+B |
- | 빼기 | A-B |
* | 곱하기 | A*B |
/ | 나누기 | A/B |
% | 나머지 | A%B |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>
void main()
{
int num1 = 50;
int num2 = 6;
printf("num1 + num2 : %d\n", num1 + num2);
printf("num1 - num2 : %d\n", num1 - num2);
printf("num1 * num2 : %d\n", num1 * num2);
printf("num1 / num2 : %f\n", (float)num1 / (float)num2); // 소수점 출력을 위해서 float로 강제 형변환합니다.
printf("num1 %% num2 : %d\n", num1 % num2);
}
|
cs |
2. 단항 연산자
피연산자에 증가(++),감소(--)와 양수(+),음수(-)를 표시하는 연산자입니다.
연산자 | 설명 | 사용 |
+ | 양수표현 | +A |
- | 음수표현 | -A |
++ | 1씩증가 | A++, ++A |
-- | 1씩감소 | A--, --A |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>
void main()
{
int num = 50;
printf("num : %d\n", num);
printf("-num : %d\n", -num);
printf("num++ : %d\n", num++); // 다음 코드에서 1증가
printf("++num : %d\n", ++num); // 현재 코드에서 1증가
printf("num-- : %d\n", num--); // 다음 코드에서 1감소
printf("--num : %d\n", --num); // 현재 코드에서 1감소
}
|
cs |
3. 대입 연산자
오른쪽 식을 왼쪽값에 대입합니다.
연산자 | 설명 | 사용 |
= | 오른쪽 식을 왼쪽 값에 대입 | C = A + B |
복합 산술연산자 ( 이항연산자와 대입연산자를 같이 사용)
연산자 | 설명 | 사용 |
+= | 왼쪽 수에 오른쪽 수 더해 왼쪽 수에 대입 | A += B (A = A + B) |
-= | 왼쪽 수에 오른쪽 수 빼기를 해 왼쪽 수에 대입 | A -= B (A = A - B) |
*= | 왼쪽 수에 오른쪽 수 곱해서 왼쪽 수에 대입 | A *= B (A = A * B) |
/= | 왼쪽 수에 오른쪽 수 나누어 왼쪽 수에 대입 | A /= B (A = A / B) |
%= | 왼쪽 수에 오른쪽 수 나눈 나머지를 왼쪽 수에 대입 | A %= B (A = A % B) |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <stdio.h>
void main()
{
int num = 10;
printf("num : %d\n", num);
num += 6; // num = num + 6
printf("num : %d\n", num);
num -= 8; // num = num - 8
printf("num : %d\n", num);
num *= 4; // num = num * 4
printf("num : %d\n", num);
num /= 2; // num = num / 2
printf("num : %d\n", num);
num %= 2; // num = num % 3
printf("num : %d\n", num);
}
|
cs |
비교 연산자(혹은 관계 연산자)
왼쪽값과 오른쪽 값을 비교합니다.
연산자 | 설명 | 사용 |
< | 오른쪽 값이 왼쪽 값보다 클 때 1, 아니면 0 | A < B |
> | 왼쪽 값이 오른쪽 값보다 클 때 1, 아니면 0 | A > B |
<= | 오른쪽 값이 왼쪽 값보다 같거나 클 때 1, 아니면 0 | A <= B |
>= | 왼쪽 값이 오른쪽 값보다 같거나 클 때 1, 아니면 0 | A >= B |
== | 왼쪽 값과 오른쪽 값이 같을 때 1, 아니면 0 | A == B |
!= | 왼쪽 값과 오른쪽 값이 다를 때 1, 아니면 0 | A != B |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h>
void main()
{
int num1 = 10;
int num2 = 15;
printf("num1 < num2 : %d\n", num1 < num2);
printf("num1 > num2 : %d\n", num1 > num2);
printf("num1 <= num2 : %d\n", num1 <= num2);
printf("num1 >= num2 : %d\n", num1 >= num2);
printf("num1 == num2 : %d\n", num1 == num2);
printf("num1 != num2 : %d\n", num1 != num2);
}
|
cs |
논리 연산자
왼쪽과 오른쪽을 논리연산(AND, OR, NOT)합니다.
연산자 | 설명 | 사용 |
&& | 왼쪽과 오른쪽 논리값이 모두 1일 때 1 (AND 연산) | A && B |
|| | 왼쪽과 오른쪽 논리값이 하나라도 1일 때 1 (OR 연산) | A > B |
! | 논리값이 0이면 1, 1이면 0 | !A |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <stdio.h>
void main()
{
int num1 = 1;
int num2 = 1;
printf("num1 && num2 : %d\n", num1 && num2);
printf("num1 || num2 : %d\n", num1 || num2);
num1 = 1;
num2 = 0;
printf("num1 && num2 : %d\n", num1 && num2);
printf("num1 || num2 : %d\n", num1 || num2);
printf("!num1 : %d\n", !num1);
}
|
cs |
비트 연산자
비트(2진수) 연산을 위해서는 비트 연산자를 사용합니다.
연산자 | 설명 | 사용 |
& | 비트(2진수)단위 AND 연산 | A & B |
| | 비트(2진수)단위 OR 연산 | A | B |
~ | 비트(2진수)단위 NOT 연산 | ~A |
^ | 비트(2진수)단위 XOR 연산 | A ^ B |
<< | 왼쪽으로 비트 이동 | A << B |
>> | 오른쪽으로 비트 이동 | A >> B |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <stdio.h>
void main()
{
int num1 = 14;
int num2 = 7;
// num1 1110
// num2 AND 0111
// 0110
printf("num1 & num2 : %d\n", num1 & num2);
// num1 1110
// num2 OR 0111
// 1111
printf("num1 | num2 : %d\n", num1 | num2);
// num1 NOT 1110 -> 1111 1111 1111 1111 1111 1111 1111 0001
printf("num1 : %d\n", ~num1);
printf("11111num1 : %d\n", num1);
// num1 1110
// num2 XOR 0111
// 1001
printf("num1 ^ num2 : %d\n", num1 ^ num2);
// 1110 >> 2 -> 0011
printf("num1 >> 2 : %d\n", num1 >> 2);
// 1110 << 2 -> 11 1000
printf("num1 << 2 : %d\n", num1 << 2);
}
|
cs |
포인터 연산자
변수가 참조하는 주소값과 포인터 변수가 가르키는 값을 얻기 위해 사용합니다.
연산자 | 설명 | 사용 |
& | 변수의 주소값 | &A |
* | 포인터 변수의 가르키는 값 | *A |
예제
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
void main()
{
int num = 10;
int* p = #
printf("&num: %p\n", &num);
num = 5;
printf("*p: %d\n", *p);
}
|
cs |
조건 연산자(혹은 삼항 연산자)
조건식으로 참 / 거짓에 따라 수식을 실행합니다.
연산자 | 설명 | 사용 |
조건식 ? 식1 : 식2 | 조건식이 참이면 식1이 적용, 거짓이면 식2 적용 | A < B ? A = 5 : B = 10 |
예제
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
void main()
{
int num1 = 14;
int num2 = 7;
(num1 < num2) ? (num1 = 5) : (num1 = 10);
printf("num1: %d\n", num1);
}
|
cs |
반응형
'개발공부 > C언어&C++' 카테고리의 다른 글
[C언어 강좌] 제 8강 반복문( for, while, do-while ) (0) | 2020.02.26 |
---|---|
[C언어 강좌] 제 7강 조건문 (if, else if, else, switch, case, break) (0) | 2020.02.25 |
[C언어 강좌] 제 5강 출력과 입력( printf, scanf, scanf_s, _CRT_SECURE_NO_WARNINGS ) (2) | 2020.02.23 |
[C언어 강좌] 제 4강 배열 (0) | 2020.02.22 |
[C언어 강좌] 제 3강 변수와 상수 (0) | 2020.02.21 |