5. C 연산자

2022. 2. 17. 11:08C

연산자는 변수와 값의 연산을 위해 사용됩니다. 

C언어의 연산자는 크게 6가지로 나뉩니다.

  • 산술 연산자 (증감 연산자 포함)
  • 대입 연산자
  • 관계 연산자
  • 논리 연산자
  • 비트 연산자
  • 조건 연산자

산술 연산자

제일 쉬운 연산자입니다. 기본적인 사칙연산을 하는 연산자입니다.

연산자 이름 설명 예시
+ 덧셈 + 앞뒤에 있는 숫자를 더함 x + y
- 뺄셈 - 앞뒤에 있는 숫자를 뺌 x - y
* 곱셈 * 앞뒤에 있는 숫자를 곱함 x * y
/ 나눗셈 / 앞뒤에 있는 숫자를 나눔 x / y
% 나머지 % 앞뒤에 있는 숫자를 나눈 결과의 나머지를 구함 x % y
++ 증가 변수의 값을 1만큼 증가시킴 x++
-- 감소 변수의 값을 1만큼 감소시킴 x--

대입 연산자

대입 연산자는 변수에 값을 대입(지정)할 때 사용합니다. 

변수 편에서 나왔던 이 구문에도 대입 연산자가 사용됐습니다. 

int a = 1;

바로 a 라는 정수형 변수에 1을 대입한 것입니다. 

대입 연산자는 = 말고도 많은데, 모두 번거로운 타이핑을 줄여주기 위한 의도로 만들어졌습니다. 

예를 들어서, 

int a = 1;
a = a + 1;

이라는 코드가 있습니다. 

그런데, a = a + 1; 을 작성하는게 번거로울 수 있습니다. 

그래서, 다음과 같은 구문이 나오게 됩니다. 

a += 1;

a = a + 1; 과 역할은 같은 구문이지만 훨씬 간단해졌습니다. 

 

연산자 예시 다음과 같음
= a = 1 a = 1
+= a += 1 a = a + 1;
-= a -= 1 a = a - 1;
*= a *= 1 a = a * 1;
/= a /= 1 a = a / 1;
%= a %= 1 a = a % 1
&= a &= 1 a = a & 1
|= a |= 1 a = a | 1
^= a ^= 1 a = a ^ 1
>>= a >>= 1 a = a >> 1
<<= a << = 1 a = a << 1

%= 이후에는 모르는 연산자들이 나오는데, 곧 다룰 비트 연산자들입니다. 

관계 연산자

두 값을 비교하는데 사용됩니다. 비교 연산자라고도 합니다. 

관계 연산자로 비교를 했을 때는 0 (False, 거짓) 또는 1 (True, 참)을 출력하게 되는데, 

다음 예시를 보면

int a = 2;
int b = 3;
printf("%d", a > b");

> 라는 관계 연산자를 사용해서 a가 b보다 큰지 확인했습니다. 

a는 2이고 b는 3인데 2는 3보다 작으므로 출력값은 0 입니다. 

 

연산자 명칭 예시
== 같다 a == b
!= 같지 않다 a != b
> ~보다 크다 a > b
< ~보다 작다 a < b
>= ~보다 작지 않다 a >= b
<= ~보다 크지 않다 a <= b

논리 연산자

논리 연산자는 두 변수 또는 값 사이의 논리 관계를 파악하는 연산자입니다. 

연산자 이름 설명 예시
&& 그리고 두 조건이 모두 참이면 1반환 a > b && b > c
|| 또는 두 조건 중 하나라도 참이면 1 반환 a > b || b < c
! 아니다 참(1)이면 거짓(0)을,
거짓(0)이면 참(1)을 반환
!(a > b && b > c)

비트 연산자

비트 연산자는 데이터를 비트 단위로 처리하는 연산자입니다. 비트 연산자에는 비트 논리 연산자와 비트 이동 연산자가 있습니다. 비트 논리 연산자에는 &(AND, 논리곱), |(OR, 논리합), ^(XOR, 배타적 논리합), ~(NOT, 부정)연산자가 있고 비트 이동 연산자에는 왼쪽 시프트(<<)연산자와 오른쪽 시프트(>>)연산자가 있습니다.

비트 연산자는 어려운 개념이고, 기초저인 C 프로그램을 할 때는 거의 필요하지 않아 추후 비트의 개념에 대해 알아보며 다시 돌아오겠습니다. 

sizeof() 함수

연산자이자 함수입니다. 필수적으로 외워야 하는 함수 중 하나라고 생각해 작성합니다. 

이 함수는 자료형이나 변수의 메모리 크기를 바이트로 나타냅니다. 

메모리에 대해선 추후 강의에서 자세히 설명하겠으나, 지금은 변수 편에서 알아본 변수 표를 사용해 맛만 보겠습니다. 

2022.02.16 - [C] - 4. C 변수와 자료형

 

4. C 변수와 자료형

변수의 사전적 의미는 "변할 수 있는 수" 입니다. 하지만 코딩에서 변수는 데이터 값을 담는 상자라고 보면 편합니다. C 언어에서는 서로 다른 키워드로 표현되는 여러 가지 종류의 변수가 있습

tjwhang.tistory.com

int integer;
float floatingPoint;
double doubleFloat;
char character;

printf("%lu\n", sizeof(integer));
printf("%lu\n", sizeof(floatingPoint));
printf("%lu\n", sizeof(doubleFloat));
printf("%lu\n", sizeof(character));

실행 결과는?

4
4
8
1

 

이 코드에서 메모리 크기를 출력하기 위해 사용한 %lu는 unsigned long 형을 출력하는 형식 지정자입니다. 
%d 연산자를 사용해도 실행이 될테지만, %lu를 사용하는 것이 더 안전합니다. 

다음 강의에서는 조건문에 대해 알아보도록 하겠습니다. 

'C' 카테고리의 다른 글

7. C 반복문  (0) 2022.02.21
6. C 조건문 (if, else, else if, switch)  (0) 2022.02.19
4. C 변수와 자료형  (0) 2022.02.16
3. C 출력 (글자 띄우기) - printf() 함수  (0) 2022.02.16
2. C의 문법  (0) 2022.02.16