연산자와 피연산자
연산자(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 삼항 연산자