연산자

C언어 2020. 12. 2. 21:53

연산자와 피연산자

연산자(Operator) - 연산을 수행하는 기호를 의미

피연산자(Operand) - 연산에 포함되는 변수나 상수를 의미

- A + B에서 A와 B는 피연산자에 해당하며 +는 연산자에 해당

 

연산자의 종류

대입 연산자:  =

산술 연산자:  +  -  *  /  %

관계 연산자:  = =  !=  >  <  >=  <=

논리 연산자:  !  &&  ||

증감 연산자:  ++  --

삼항 연산자:  ?  :

비트 연산자:  !  ~  &  ^  >>  <<

 

대입 연산자

- '=' 등호 (Equals Sign)를 이용해서 우변항을 좌변항에 넣을 수 있음(오른쪽에 있는 값을 왼쪽에 넣겠다는 의미)

- 자료형에 부합하는 값을 좌변항에 있는 변수에 넣음

 

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

사칙연산

- C언어에서는 기본적인 사칙 연산을 사용할 수 있음

- 나머지(%)를 구하기 위해 모듈러(Modular) 연산을 사용

 

+ 더하기

-  빼기

*  곱하기

/  나누기

% 나머지

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>

int main(void) {
	int a, b;
	scanf("%d %d", &a, &b);
	printf("%d + %d = %d\n", a, b, a + b);
	printf("%d - %d = %d\n", a, b, a - b);
	printf("%d * %d = %d\n", a, b, a * b);
	printf("%d / %d = %d\n", a, b, a / b);
	printf("%d %% %d = %d\n", a, b, a % b);
	system("pause");
	return 0;
}

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

 

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

이스케이프 시퀀스(Escapse Sequence)

- C언어에서 특정한 표현을 출력하기 위해 사용하는 문법

 

\n - 줄 바꾸기

\t - 수평 탭 넣기

\\ - 백 슬래시 넣기

\" - 큰 따옴표 넣기

\b - 백 스페이스 넣기

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>

int main(void) {
	printf("\"A\t B\t C\t D\"\n\n");
	system("pause");
	return 0;
}

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

 

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

관계 연산자

1.

> 크다

< 작다

== 같다

!= 다르다(! 는 부정을 의미)

>= 크거나 같다

<= 작거나 같다

 

2.

- 컴퓨터는 0을 거짓(False)으로 받아들이며, 그 외의 숫자를 참(True)으로 받아들임

- 컴퓨터가 거짓(False)을 출력할 때는 0을, 참(True)을 출력할 때는 1을 출력함

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>

int main(void) {
	int a, b;
	scanf("%d %d", &a, &b);
	printf("%d\n", a > b);
	system("pause");
	return 0;
}

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

 

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

논리 연산자

! - 부정(기존에 참 값을 거짓 값으로 바꿈)

&& - 그리고

|| - 또는(두 수식 중 어느 한 값이라도 참이라면 참 값이 나오고 두 수식 모두 거짓이면 거짓이 나옴)

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>

int main(void) {
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	printf("%d\n", !a);
	printf("%d\n", a && b);
	printf("%d\n", (a > b) && (b > c));
	system("pause");
	return 0;
}

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

 

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

증감 연산자

++(변수) - i의 값을 1 증가시킨 후에 증가된 값을 반환

(변수)++ - i의 값을 1 증가시킨 후에 증가되기 전의 값을 반환

--(변수) - i의 값을 1 감소시킨 후에 감소된 값을 반환

(변수)-- - i의 값을 1 감소시킨 후에 감소되기 전의 값을 반환

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>

int main(void) {
	int a = 7;
	printf("%d\n", ++a);
	printf("%d\n", a++);
	printf("%d\n", ++a);
	system("pause");
	return 0;
}

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

 

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

삼항 연산자

- 세 개의 항을 이용해서 조건문을 수행할 수 있는 연산자

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>

int main(void) {
	int a = 7,  b = 7;
	printf("%d\n", (a == b) ? 100 : -100); // a와 b의 값일 일치할 때 100이 출력되고 아니면 -100이 출력됨
	system("pause");
	return 0;
}

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

 

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

비트 연산자

1.

- 비트 단위의 연산을 수행할 수 있음

 

~  부정

~(11000011) = (00111100)

 

&  그리고

(00001101) & (00000011) = (00000001)

 

|  또는

(11001100) | (00110000) = (11111100)

 

^  배타적

(11001111) ^ (00000011) = (11001100)

 

<<  왼쪽 시프트

(00001111) << 3=(01111000)

 

2.

- 시프트(Shift) 연산자는 2의 배수를 처리하고자 할 때 효과적

- 9를 표현하면 다음과 같음

00001001

 

- 왼쪽 시프트(Shift)를 수행하면 9에서 18로 2배가 증가

00010010

 

- 오른쪽 시프트(Shift)를 수행하면 2로 나누 값이 반환

 

연산자 우선순위

- C언어의 연산자 우선순위는 기본적으로 수학에서의 우선순위와 흡사

 

우선순위  연산자

1            ++,  --

2            !,  ~

3            +,  /,  %

4            +,  -

5            <<,  >>

6            <.  <=,  >,  >=

7            ==,  !=

8            비트, 논리, 삼항 연산자

9            삼항 연산자

'C언어' 카테고리의 다른 글

반복문  (0) 2020.12.04
조건문  (0) 2020.12.03
기본 입출력  (0) 2020.12.01
Visual Studio 역슬래시  (0) 2020.12.01
변수와 상수  (0) 2020.12.01
Posted by khon98
,