C언어

4day.c 연산자 정리

양곰3 2017. 3. 9. 16:13

수식(expression)


- 상수, 변수, 연산자의 조합


- 연산자와 피연산자로 나누어진다.



기능에 따른 연산자의 분류


연산자 의미

    -------------------------------------

대입 = 오른쪽을 왼쪽에 대입

-----------------------------------------

산술 +,-,*,/,% 사칙연산과 나머지연산

-----------------------------------------

부호 +,_

-----------------------------------------

증감 ++,-- 증가,감소연산

-----------------------------------------

관계 ><,==,!=,>=,<= 오른쪽과 왼쪽을 비교

-----------------------------------------

논리 && || 논리적인 AND,OR

-----------------------------------------

조건 ? 조건에 따라 선택


피연산자수에 따른 연산자 분류


- 단항 연산자: 피연산자의 수가 1개

  예) ++x;, --y;


- 이항 연산자: 피연산자의 수가 2개

  예) x+y, x-y


- 삼항 연산자: 연산자의 수가 3개

  예) x?y:z


대입(배정,할당) 연산자


- 왼쪽에 있는 변수에 오른쪽의 수식의 값을 계산하여 대입

- x = 10; 상수 10을 변수 x에 대입한다.


산술 연산자


- 덧셈, 뺄셈, 곱셈, 나눗셈 등의 사칙 연산을

수행하는 연산자.

덧셈 +


뺄셈 -


곱셈 *


나눗셈 /


나머지 %


거듭제곱은 어떻게 할까?


C에는 거듭 제곱을 연산자는 없다.

 x*x와 같이 단순히 변수를 두번 곱한다.

예) 3의 3제곱은 3*3*3이다.

나눗셈 연산자


- 정수형끼리의 나눗셈에서는 결과가 정수형으로 생성하고 

  부동소수점형끼리는 부동소수점 값을 생성한다.


- 정수형끼리의 나눗셈에서 소수점 이하는 버려진다.


나머지 연산자


- 나머지 연산자는 첫번째 피연산자를 두번째 피연산자로

  나누었을 경우의 나머지를 계산

- 10%2 = 0

- 5%7 = 5

- 30%9 = 3


- 나머지 연산자를 이용한 짝수와 홀수의 구분

- x%2가 0이면 짝수


- 나머지 연산자를 이용한 5의 배수 판단

- x%5가 0이면 5의 배수


증감 연산자


++x: x의 값이 1만큼 증가된 값으로 저장된후에 쓰여지는것


x++: 문장이 끝난 후에 x의 값이 1만큼 증가하는것


--x: x의 값이 1만큼 감소된 값으로 저장된 후에 쓰여지는것


x--: 문장이 끝난 후에 x의 값이 1만큼 감소하는것


예)int x = 10, y = 10;


printf("x = %d\n",x); x = 10

printf("++x의 값 = %d\n",++x);  x = 11

printf("x = %d\n\n",x); x = 11

printf("y = %d\n",y); y = 10

printf("y++의 값 = %d\n",y++); y = 10

printf("y = %d\n",y); y = 11


복합 대입 연산자


- 복합 대입 연산자란 +=처럼 대입연산자 =와 

  산술연산자를 합쳐 놓은 연산자이다.


- 장점:소스를 간결하게 해줄수있다.


예) x += y -> x = x+y

    x -= y -> x = x-y

 

관계 연산자


- 두개의 피연산자를 비교하는 연산자


- 결과값은 참(1)아니면 거짓(0)


    연산자 기호

== x와y의 값이 같은가?

!= x와y의 값이 다른가?

>,< x와y의 크기비교

>=,<=


예) 1 == 1 참(1)

    1 != 2 참(1)

    2 > 1 참(1)

    x >= y x가 y보다 크거나 같으면 참(1)


관계연산자 사용시 주의점


- 잘못된 방법: 2< x < 5

- 올바른 방법:(2<x)&&(x<5)


논리 연산자


- 여러개의 조건을 조합하여 참과 거짓을 따지는 연산자


- 결과값은 참(1) 아니면 거짓(0)


연산자 기호


  && AND연산, x와y가 모두 참이면 참아니면 거짓


예) (age<= 30)&&(toeic >=700)

  참(1) 참(1)    => 참(1)


  || OR연산, x나 y중에 하나만 참이면 


예) (age <=30) || (toeic >= 700)

  참(1)  거짓(0)  =>참(1)


  ! NOT연산, x가 참이면 거짓, x가 거짓이면 참



참과 거짓의 표현 방법


- 관계 수식이나 논리 수식이 만약 참이면 1이 생성

  거짓이면 0이 생성


- 피연산자의 참,거짓을 가릴 떄에는 0이 아니면 참이고

  0이면 거짓으로 판단.


- 음수는 거짓으로 판단.


NOT연산자


- 피연산자의 값이 참이면 연산의 결과값을 거짓으로 만들고, 

  피연산자의 값이 거짓이면 연산의 결과값을 참으로 만듬


논리 연산자 예시


-"x는 1,2,3중의 하나인가"

- (x==1)||(x==2)||(x==3)


-"x가 60이상 100미만이다."

- (x>=60)&&(x<100)


-"x가 0도 아니고 1도 아니다."

- (x!=0)&&(x!=1) x는0이 아니고 1도아니다.


조건 연산자


예) value = (x > y)?x:y;

x>y가 참이면 x가 수식의 값이된다.

거짓이면y 가 수식의 값이된다.