신규 블로그를 만들었습니다!
1.연산자란?
연산을 하기위해 사용하는 기호이다. 흔히 사용하는 사칙연산도 연산자에 포함된다.
sum = 1+ 2;
sum : 연산결과
=, + : 연산자
1, 2 : 피연산자
연산자의 개수에 따라 일항, 이항, 삼항 연산자로 나눠진다.
일항 연산자
!a
이항 연산자
num = 2
삼항 연산자
x ? y : z
2. 연산자의 종류
산술
+, -, *, /, %
#include <stdio.h>
int main(void) {
// 산술 연산자
int num1 = 11;
int num2 = 5;
printf("num1 + num2 = %d\n", (num1 + num2));
printf("num1 - num2 = %d\n", (num1 - num2));
printf("num1 * num2 = %d\n", (num1 * num2));
printf("num1 / num2 = %lf\n", ((double)num1 / num2));
printf("num1 %% num2 = %d\n", (num1 % num2)); // %를 표현할때는 %% 2개를 사용한다.
return 0;
}
대입
=
a=1;
b=2;
a=b;
복합대입
+=, -=, *=, /=, %=
#include <stdio.h>
int main(void) {
// 대입 연산자
int result = 11;
int num = 5;
printf("result += num >> %d\n", (result += num));
result = 11;
printf("result -= num >> %d\n", (result -= num));
result = 11;
printf("result *= num >> %d\n", (result *= num));
result = 11;
printf("result /= num >> %d\n", (result /= num));
result = 11;
printf("result %%= num >> %d\n", (result %= num));
return 0;
}
증감
++, --
a++;
a = a + 1;
증감연산자에는 전위 연산, 후위 연산 2가지가 있다. 수행작업을 먼저 실행하는 것이 전위, 나중에 실행하는 것이 후위 연산이다.
#include <stdio.h>
int main(void) {
// 증감 연산자
int a = 1;
printf("a = %d\n", a); // 1
printf("++a = %d\n", ++a); // 전위 연산 => 2
printf("a++ = %d\n", a++); // 후위 연산 => 2
printf("a = %d\n", a); // a => 3
return 0;
}
위의 11번째 줄은 출력하는 작업을 먼저하고 a의 수를 증가 시키기 때문에 2가 출력된 뒤에 a가 증가하여, 다시 a를 출력해보면 3인 된 것을 알 수 있다.
관계
>, <, >=, <=, ==, !=
3 > 2 // True
컴퓨터는 0을 제외한 모든 숫자는 True로 인식한다. 반대로 0은 False이다.
#include <stdio.h>
int main(void) {
// 관계 연산자
int a = 10;
int b = 15;
printf("a > b %d\n", (a > b)); // 거짓 0
printf("a == b %d\n", (a == b)); // 거짓 0
printf("a < b %d\n", (a < b)); // 참 1
printf("a != b %d\n", (a != b)); // 참 1
return 0;
}
논리
&&, ||
&& : and
|| : or
AND 연산은 모두 참일때, 참이라는 결과가 나온다. 하나라도 거짓이 있으면 거짓이다.
OR 연산은 하나라도 참이면, 참이라는 결과가 나온다.
#include <stdio.h>
int main(void) {
// 논리 연산자
int a = 1; // 참, true
int b = 0; // 거짓, false
printf("a && b = %d\n", (a && b));
printf("a || b = %d\n", (a || b));
return 0;
}
비트
&, |, ^, ~, >>, <<
1111 & 0101 => 0101
1111 | 0100 => 1111
1100 ^ 0101 => 1001
#include <stdio.h>
int main(void) {
// 비트 연산자
printf("0 & 0 = %d\n", (0 & 0));
printf("0 & 1 = %d\n", (0 & 1));
printf("1 & 1 = %d\n\n", (1 & 1));
printf("0 | 0 = %d\n", (0 | 0));
printf("0 | 1 = %d\n", (0 | 1));
printf("1 | 1 = %d\n\n", (1 | 1));
// 같으면 0, 다르면 1이 나온다.
printf("0 ^ 0 = %d\n", (0 ^ 0));
printf("0 ^ 1 = %d\n", (0 ^ 1));
printf("1 ^ 1 = %d\n\n", (1 ^ 1));
return 0;
}
조건
?:
#include <stdio.h>
int main(void) {
// 조건 연산자
int i = 10;
int j = 20;
printf("(i > j) ? 참 : 거짓 => %d\n", (i > j) ? 1 : 0);
return 0;
}
관련 글
2018/01/27 - [Language/C] - C언어 :: ASCII 코드와 코드표 #8
2018/01/29 - [Language/C] - C언어 :: 제어문(반복문 for while, 조건문 if switch) #10
'Language > C&C++' 카테고리의 다른 글
C언어 :: 함수(function, method)와 사용법 #11 (0) | 2018.01.30 |
---|---|
C언어 :: 제어문(반복문 for while, 조건문 if switch) #10 (0) | 2018.01.29 |
C언어 :: ASCII 코드와 코드표 #8 (0) | 2018.01.27 |
C언어 :: signed, unsigned 그리고 underflow, overflow #7 (0) | 2018.01.25 |
C언어 :: 자료형 - 정수형, 실수형 #6 (0) | 2018.01.25 |
최근댓글