본문 바로가기

C Langauage

Chapter 4. 연산자(Operator)

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