반응형
SMALL

학습목표

1. 여러 종류의 연산자를 이해할 수 있다.

2. 적절한 연산자를 사용할 수 있따.

3. 연사자와 우선순위를 이해할 수 있따.

 

3.2 연산자

임의의 자료에 대해 각종 연산을 수행하게 하는 기호

 

 

3.2.1 산술 연산자

피연산자에 대해 사칙연산을 포함한 각종 산술연산을 수행하는 연산자로 이항 연산자와 단항 연산자로 구분할 수 있다.

 

 

(1) 이항 연산자 binary operator

2개의 자료를 대상으로 산술적인 처리를 수행하는 연산자.

+, -, *, / 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈의 사칙연산을 수행하는 연산자이며,

% 연산자는 나눗셈의 나머지 값을 이용하는 나머지 연산자 ( modulo operator )이다.

% 연산자는 정수형 자료에만 사용할 수 있고, 실수형에는 사용할 수 없다.

 

#include <stdio.h>
void main(){
int x, y;
x = 10;
y = 3;

printf(" x + y = %d \n", x + y); 
printf(" x / y = %d \n", x / y); 
printf(" x %% y = %d \n", x % y); 
// %문자를 출력하기 위해 %문자를 2개 연속  
printf(" y %% x = %d \n", y % x);  }

 

(2) 단항 연산자 unary operator

1개 자료만을 대상으로 산술적인 처리를 수행하는 연산자

++, -- 를 증감 연산자라고도 하며, 각각 피연산자의 값을 1증가시키거나 1감소시키는 기능을 수행

i++ = i = i +1

i -- = i = i - 1

++, -- 연산자는 위치에 따라 기능이 달라짐

i++ (후치연산) : i 의 값을 먼저 사용한 후 1 증가시킨다.

++i (전치연산) : i 의 값을 먼저 1 증가시킨 후 사용한다.

x = i++ >> x = 5, i =6

x = ++i >> x = 6, i = 6

 

#include <stdio.h> 
void main(){ 
int a, b, c; 
a = b = c = 0; 
a = ++b + ++c; 
// b 와 c 의 값을 1증가하고 두 값을 더한 값을 a에 대입 
printf("a = ++b + ++c 실행 후 a = %d, b = %d, c = %d \n", a, b, c); 
a = b++ + c++; 
// c의 값을 1 증가한 후 b와 더해서 a에 대입하고 b의 값을 1증가  
printf("a = b++ + c++ 실행 후 a= %d, b = %d, c = %d \n", a, b, c); 
a = b-- + --c; 
// c 의 값을 1 감소한 후 b와 더해서 a에 대힙하고 b의 값을 1 감소 
printf("a = b-- + --c 실행 후 a = %d, b= %d, c = %d \n", a, b, c); 
}

 

 

3.2.2 관계 연산자(relational operator)

피연산자에 대한 대소 관계를 비교하는 연산자 >> 결과는 참과 거짓이 된다.

따라서 조건검정을 위해 주로 사용된다.

 

#include <stdio.h>
void main(){
int a = 4, b, c, d;
b = a > 2; 

//a가 2보다 큰가를 비교, 결과가 참이므로 b에 1대입 
printf("b = %d \n", b) ; 
c = a <2; 
//a가 2보다 작은가를 비교, 결과가 참이므로 c에 0 대입 
printf("c = %d \n", c) ; 
d = a == 4; 
//a가 4인가를 비교, 결과가 참이므로 d에 1대입 
printf("d = %d \n", d) ; 
}

 

3.2.3 논리 연산자 logical operator

피연산자에 대해 논리연산 (AND, OR, NOT) 을 수행하는 연산자이며, 연산 결과는 참과 거짓으로 나타낸다.

논리연산에서 값이 0인 경우 거짓, 0이 아닌 다른 값은 참이 된다.

 

#include <stdio.h>
void main(){
int a = 4, b = 7, c, d, e;
c = a > 2 && b <=7;

//양쪽 모두 참이므로 참(논리곱) 
printf("c = %d \n", c) ; 
d = a < 2 || b <=7; 
//b가 참(a는 거짓)이므로 참(논리합) 
printf("d = %d \n", d) ; 
e = !a; 
//a가 참 (0이 아님)이므로 거짓(논리부정) 
printf("e = %d \n", e) ; 
}

 



반응형
LIST

+ Recent posts