영어로는 오퍼레이터(operator)라고 하는 연산자는, 피연산자(operand)인 데이터를 이용해 어떤 결과값을 도출해 내기 위한 최소한의 기능들을 가진 기호들을 말한다. 연산자에는 다음과 같이 여러 종류가 있다. 이번 페이지에서는 산술연산자, 대입연산자, 증감연산자까지만 다뤄 보도록 하자.
산술연산자 : +, -, *, /, %
대입연산자 : =
증감연산자 : ++, —
논리연산자 : !, &&, ||
비교연산자 : ==, !=, >, >=, <, <=
비트연산자 : >>, <<, &, |, ^, ~
3항연산자 : ?, :
1. 산술연산자
산술연산자는 수학적 계산을 하기위한 연산자들이다. 보통 사칙연산이라고 하는 4가지 연산을 위한 기호들이다. 그러나 우리가 보통 학교에서 배운 연산자와는 다른 두가지가 있다. 바로 곱하기와 나누기다. 이는 C뿐만 아니라 그 외 대부분의 다른 언어에서도 마찬가지다.
+ : 더하기
- : 빼기
* : 곱하기
/ : 나누기
% : 나머지 ( a % b : a를 b로 나눈 나머지)
산술연산자는 피연산자를 항상 좌측에 하나, 우측에 하나, 총 2개를 가지도록 되어있다. 연산의 순서는 항상 왼쪽에서 오른쪽으로 진행 된다. 수학에서와 마찬가지로 괄호('(',')')로 싸여진 수식은 연산의 순서에서 우선순위를 가진다. 피연산자의 형태는 변수나 상수 다 가능하다.
예)
int a, b, c, d, e;
a = 1 + 2; // 1 더하기 1 : a 의 값은 3
b = a - 1; // a 빼기 2 : b 의 값은 2
c = b * 3; // b 곱하기 3 : c 의 값은 6
d = c / b; // c 나누기 b : d 의 값은 3
e = (a + b + c + d) % 10; // (3 + 2 + 6 + 3) 을 10으로 나눈 나머지는 4
2 대입연산자
C에서 '=' 기호는 수학에서의 '=' 기호와는 개념이 다르다. 수학에서는 '같다'의 개념으로 주로 쓰이지만 C나 그 외 프로그래밍 언어에서 '='는 '저장한다'의 의미로 쓰인다. 그래서 이를 '대입연산자'라고 부르는 것이다. 대입연산자는 연산자 좌측에 있는 수식의 결과값을 연산자 우측의 변수에 저장해주는 기능을 한다. 그러므로 대입연산자 우측에는 항상 변수가 오도록 되어있다.
= : 대입연산자
예)
int a, b;
a = 5; // a에 5을 저장
b = a; // b에 a에 저장된 5 값을 저장
7 = b; // 상수 7에는 값을 저장할 수 없으므로 컴파일시 에러 발생
3 증감연산자
증감연산자란 정수로 1씩 증가하거나 1씩 감소시키는 연산자를 말한다. 그러므로 정수 변수에만 사용할 수 있다.
++ : 정수 1 씩 증가
-- : 정수 1 씩 감소
증감 연산자는 연산자의 위치가 변수의 앞이냐 뒤냐에 따라서 동작하는 방식이 다르다.
++변수, --변수 : 변수를 먼저 1씩 증가시키거나 감소시키고 나서 변수를 사용한다.
변수++, 변수-- : 변수를 먼저 사용하고 나서 1씩 증가시키거나 감소시킨다.
예)
int a, b, c = 5;
a = ++c; // a 값은 6, c값은 6
b = c ++; // b 값은 6, c값은 7
'프로그래밍 언어 > C' 카테고리의 다른 글
[C언어:초급-008] 상수 (0) | 2022.03.06 |
---|---|
[C언어:초급-007] 연산자2-비교, 논리 (0) | 2022.03.06 |
[C언어:초급-005] 주석(코멘트) (0) | 2022.03.01 |
[C언어:초급-004] 변수명 작성규칙 (0) | 2022.02.27 |
[C언어:초급-003] 변수 (0) | 2022.02.27 |