Chapter 4. 연산자(Operator)
1. 연산자(Operator)
- 연산자(Operator)
· 값을 연산할 때 수식에 쓰이는 기호
· 수식
◦ 값을 갖는 요소
◦ 평가 : 수식이 가진 값을 계산하는 것
◦ 연산식
▹ 연산자를 이용해서 만든 수식
▹ 연산식을 만들기 위해서는 연산자와 피연산자가 필요하다
▹ 연산자 : 연산에 사용되는 기호
▹ 피연산자 : 연산에 사용되는 값
2. 연산자의 종류
- 산술 연산자
· 기본적인 사칙연산을 할 수 있도록 제공하는 연산자
· 정수의 연산 결과는 정수이다
· 정수와 실수 연산의 결과는 실수이다.
· 정수 나눗셈의 결과가 양수면 소수점 아래를 버리고 음수면 소수점 아래를 올린다.
· Console 출력 값은 printf의 %d, %f 같은 서식문자에 따라 달라진다.
※ %d로 출력하는 출력 함수에 정수를 나누는 실수 값을 인자에 집어넣는다면 쓰레기 값을 갖는다.
하지만 정수를 나누는 실수 값을 변수에 넣어 인자를 넣는다면 소수점 이하를 버린 값이 나온다.
연산자 |
연산자의 의미 |
결합성 |
+ |
왼쪽과 오른쪽에 있는 값을 더함 |
→ |
- |
왼쪽에 있는 값에서 오른쪽에 있는 값을 뺌 |
→ |
* |
왼쪽과 오른쪽에 있는 값을 곱함 |
→ |
/ |
왼쪽에 있는 값을 오른쪽에 있는 값으로 나눔 |
→ |
% |
왼쪽에 있는 값을 오른쪽에 있는 값으로 나눠서 나머지를 반환 |
→ |
- 대입 연산자
· 연산자의 좌변에 있는 변수에 우변에 있는 수식의 값을 저장하는 연산자
· 변수와 연산 후 다시 그 변수에 대입하는 경우 사용하는 연산자를 말한다.
연산자 |
연산자의 의미 |
결합성 |
예 | |
= |
오른쪽 값을 왼쪽으로 대입 |
→ |
a=b |
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만큼 증가시키거나 감소시킬 때 사용하는 단항 연산자
· 전치 연산(++a, --a)
◦ 변수에 저장된 값을 증가 또는 감소시킨 후 연산
· 후치 연산(a++, a--)
◦ 연산 수행 후 변수에 저장된 값을 증가 또는 감소
구분 |
연산자 |
연산자의 의미 |
결합성 |
전위형 |
++a |
값을 1증가 후 연산을 진행(선 증가, 후 연산) |
→ |
--a |
값을 1감소 후 연산을 진행(선 감소, 후 연산) |
→ | |
후위형 |
a++ |
연산을 진행한 후 값을 1증가(선 연산, 후 증가) |
→ |
a-- |
연산을 진행한 후 값을 1감소(선 연산, 후 감소) |
→ |
- 관계 연산자
· 두 수의 값을 비교하기 위한 연산자
· 조건 만족 시 true(1), 조건을 만족 못할 시 false(0)을 반환
· 숫자 0이외의 숫자는 모두 true에 속한다.
연산자 |
예 |
연산자의 의미 |
결합성 |
< |
a < b |
a와 b를 비교해 작을 때 true 클 때 false를 반환 |
→ |
> |
a > b |
a와 b를 비교해 클 때 true 작을 때 false를 반환 |
→ |
== |
a == b |
a와 b를 비교해 같을 때 true 다를 때 false를 반환 |
→ |
!= |
a != b |
a와 b를 비교해 다를 때 true 같을 때 false를 반환 |
→ |
<= |
a <= b |
a와 b를 비교해 작거나 같을 때 true 크거나 같을 때 false를 반환 |
→ |
>= |
a >= b |
a와 b를 비교해 크거나 같을 때 true 작거나 같을 때 false를 반환 |
→ |
- 논리 연산자
· 여러 조건을 동시에 검사할 때 주로 사용하는 연산자
· and, or, not이 있다.
연산자 |
연산자의 의미 |
의미 |
결합성 |
&& |
피연산자가 모두 참이면 true를 반환 |
and |
→ |
|| |
피연산자 중 하나라도 참이면 true를 반환 |
or |
→ |
! |
피연산자가 true면 false를, false면 true를 반환 |
not |
← |
- 비트 연산자
· 데이터의 각 비트 단위 2진수로 변환하여 수행하는 연산자
· int, short, long형 데이터에서만 사용가능
· 주로 하드웨어를 직접 제어하거나 한글 등을 처리할 때 이용
· 자료형의 크기에 따라 비트 연산자의 연산도 달라진다.
연산자 |
예 |
연산자의 의미 |
결합성 |
& |
a & b |
비트 단위로 a의 비트와 b의 비트가 모두 참일 때 1비트를 반환 |
→ |
| |
a | b |
비트 단위로 a의 비트와 b의 비트 중 하나라도 참이면 1비트 반환 |
→ |
|
a ^ b |
비트 단위로 a의 비트와 b의 비트가 다르면 1비트 반환 |
→ |
~ |
~a |
비트 단위로 a의 비트가 참이면 0을, 거짓이면 1을 반환 |
→ |
<< |
a << 2 |
비트 단위로 a의 비트를 전체적으로 두 칸씩 왼쪽으로 미룬다. |
→ |
>> |
a >> 2 |
비트 단위로 a의 비트를 전체적으로 두 칸씩 오른쪽으로 미룬다. |
→ |
- 기타 연산자
· 콤마 연산자(,)
◦ 둘 이상의 변수를 동시에 선언하거나 둘 이상의 문장을 한 행에 삽입하는 경우 사용되는 연산자
◦ 둘 이상의 인자를 함수로 전달할 때 인자의 구분을 하기위해 사용되기도 한다.(구분자)
· 조건 연산자
◦ 조건을 판별하여 조건이 참인 경우 참을 실행하고 거짓인 경우 거짓을 수행한다.
◦ 형식 : [조건] ? [참] : [거짓] : 조건이 참이면 실행하고 조건이 거짓이면 정지한다.
· sizeof 연산자
◦ 데이터형, 상수, 변수, 수식에 대한 기억장소의 크기(byte)를 반환하는 연산자
◦ 형식 : sizeof(데이터); : 데이터형에 따라 크기 리턴
· 형 변환 연산자
◦ 이미 지정된 변수의 데이터 형을 일시적으로 다른 데이터 형으로 변환하는 연산자
◦ 형식 : (데이터형)변수; : 데이터형에 따라 변수의 데이터형을 변환
3. 연산자의 우선순위
- 연산자의 우선순위
· 어떤 연산을 먼저 수행할지를 미리 약속해 둔것
· 우선 순위순서는 괄호,구조체,공용체 > 단항 > 산술 > 관계 > 논리 > 대입 > 콤마 연산자 순이다.
우선순위 |
연산자 |
결합성 |
우선순위 | |
괄호, 구조체, 공용체 |
() [] . -> |
→ |
높음 ↕ 낮음 | |
단항연산자 |
! ~ ++ -- - + * & sizeof cast |
← | ||
이항연산자 |
승제 |
* / % |
→ | |
가감 |
+ - | |||
SHIFT |
<< >> | |||
비교 |
< > <= >= | |||
등가 |
== != | |||
bit AND |
& | |||
bit XOR |
^= | |||
bit OR |
| | |||
논리 AND |
&& | |||
논리 OR |
| | | |||
조건 연산자 |
? : |
← | ||
대입 연산자 |
= += -= *= /= %= >>= <<= &= ^= |= |
← | ||
콤마 연산자 |
, |
→ |
'C Langauage' 카테고리의 다른 글
Chapter 6. 배열(Array)과 문자열(String) (0) | 2015.08.05 |
---|---|
Chapter 5. 제어문 (0) | 2015.08.05 |
Chapter 3. 자료의 입출력 (0) | 2015.08.05 |
Chapter 2. 데이터형, 변수, 상수 (0) | 2015.08.05 |
Chapter 1. C언어 입문 (0) | 2015.08.05 |