이 장에서는 C언어 프로그래밍의 다양한 연산자에 대해 작성할 것이다
연산자는 값 또는 변수에 대해 작동하는 기호이다
C언어에서는 다양한 연산을 수행할 수 있는 광범위한 연산자가 있다
ex) 덧셈을 수행하는 연산자 +
1. C언어 산술 연산자
- 산술 연산자는 숫자값(상수 및 변수)에 대해 더하기, 빼기, 곱하기, 나누기 등의 수학 연산을 수행
연산자 | 의미 |
+ | 더하기 또는 단항 더하기 |
- | 빼기 또는 단항 빼기 |
* | 곱셈 |
/ | 분할 |
% | 나눗셈 후 나머지(모듈로 나눗셈) |
ex) 산술 연산자
#include <stdio.h>
int main()
{
int a = 9, b = 4, c;
c = a+b;
printf("a+b = %d \n", c);
c = a-b;
printf("a-b = %d \n", c);
c = a*b;
printf("a*b = %d \n", c);
c = a/b;
printf("a/b = %d \n", c);
c = a%b;
printf("Remainder when a divided by b = %d \n", c);
return 0;
}
output) a+b = 13
a-b = 5
a*b = 36
a/b = 2
Remainder when a divided by b = 1
* 연산자 +, - 그리고 * 계산하여 덧셈, 뺄셈, 곱셈은 각각 사용자가 예상했을 수도 있다
* 일반적인 계산에서 9/4 = 2.25이지만 출력값은 2가 나온다
* 두 변수 모두 b값이 int 유형인 정수값이라 출력도 정수값으로 나온다
* 컴파일러는 2.25 값인 소수점 이하의 항을 무시한 값을 출력한다
* % 연산자는 나머지를 계산한다
* a = 9에서 b = 4로 나눌때 나머지는 1이다
* % 연산자는 정수와 함께 사용할 수 있다
2. C언어 증가 및 감소 연산자
- C언어 프로그래밍에는 피연사자(상수 또는 변수)의 값을 1++씩 1-- 변경하는 두개의 연산자인 증가 감소가 있음
- ++은 1만큼 증가시키는 반면 --은 1만큼 감소시킴
- 이 두 연산자는 단항 연산자이므로 단일 피연사자에서만 작동
ex) include <stdio.h>
int main()
{
int a =10, b = 100;
float c = 10.5, d = 100.5;
printf("++a = %d \n", ++a");
printf("--b = %d \n", --b");
printf("++c = %d \n", ++c");
printf("--d = %d \n", --d");
return 0;
}
output) ++a = 11
--b = 99
++c = 11.500000
--d = 99.500000
* 여기서++ 연산자 및 --연산자는 접두사로 사용된다
* 두연산자는 a++ 및 a-- 같은 접미사로도 사용할 수 있다
3. C언어 할당 연사나자
- 일반적인 할당 연산자
연산자 | 예시 | 동일 |
= | a = b | a = b |
+= | a += b | a = a + b |
-= | a -= b | a = a - b |
*= | a *= b | a = a * b |
/= | a /= b | a = a / b |
%= | a %= b | a = a % b |
ex) #include <stdio.h>
int main()
{
int a = 5, c;
c = a;
printf("c = %d\n", c);
c += a;
printf("c = %d\n", c);
c -= a;
printf("c = %d\n", c);
c *= a;
printf("c = %d\n", c);
c /= a;
printf("c = %d\n", c);
c %= a;
printf("c = %d\n", c);
return 0;
}
output) c = 5
c = 10
c = 5
c = 25
c = 5
c = 0
4. C언어 관계 연산자
- 관계 연산자는 두 피연산자 간의 관계를 확인
- 관계가 참이면 1을 반환
- 관계가 거짓이면 0을 반환
연산자 | 의미 | 예시 | 결과 |
== | 같다 | 5==3 | 0 |
> | 초과 | 5>3 | 1 |
< | 미만 | 5<3 | 0 |
!= | 같지않음 | 5!=3 | 1 |
>= | 이상 | 5>=3 | 1 |
<= | 이하 | 5<=3 | 0 |
ex) 관계 연산자
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10;
printf("%d == %d is %d \n", a, b, a==b);
printf("%d == %d is %d \n", a, c, a==c);
printf("%d > %d is %d \n", a, b, a>b);
printf("%d > %d is %d \n", a, c, a>c);
printf("%d < %d is %d \n", a, b, a<b);
printf("%d < %d is %d \n", a, c, a<c);
printf("%d != %d is %d \n", a, b, a!=b);
printf("%d != %d is %d \n", a, c, a!=c);
printf("%d >= %d is %d \n", a, b, a>=b);
printf("%d >= %d is %d \n", a, c, a>=c);
printf("%d <= %d is %d \n", a, b, a<=b);
printf("%d <= %d is %d \n", a, c, a<=c);
return 0;
}
output) 5 == 5 is 1
5 == 10 is 0
5 > 5 is 0
5 > 10 is 0
5 < 5 is 0
5 < 10 is 1
5 != 5 is 0
5 != 10 is 1
5 >= 5 is 1
5 >= 10 is 0
5 <= 5 is 1
5 <= 10 is 1
5. C언어 논리 연산자
- 논리 연산자를 포함하는 표현식은 표현식의 결과가 참인지 거짓인지에 따라 0 또는 1을 반환
- 논리 연산자는 일반적으로 C언어 프로그래밍에서 의사 결정에 사용
연산자 | 의미 | 예제 | 결과 |
&& | 논리 AND. 모든 피연산자가 참인 경우에만 참 |
c = 5이고 d = 2이면 표현식 ((c==5) && (d>5)) |
0 |
|| | 논리적 OR. 피연산자 중 하나가 참인 경우에만 참 |
c = 5이고 d = 2이면 표현식 ((c==5) || (d>5)) |
1 |
! | 논리적 NOT. 피연산자가 0인 경우에만 참 |
c = 5이면 표현식 !(c==5) |
0 |
* Logic 참고사항
- Logic AND 연산자
- Logic OR 연산자
- Logic NOT 연산자
ex) 논리 연산자
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10, result;
result = (a == b) && (c > b);
printf("(a == b) && (c > b) is %d \n", result);
result = (a == b) && (c < b);
printf("(a == b) && (c < b) is %d \n", result);
result = (a == b) || (c < b);
printf("(a == b) || (c < b) is %d \n", result);
result = (a != b) || (c < b);
printf("(a != b) || (c < b) is %d \n", result);
result = !(a != b);
printf("!(a != b) is %d \n", result);
return 0;
}
output) (a == b) && (c > b) is 1
(a == b) &&(c < b) is 0
(a == b) || (c < b) is 1
(a != b) || (c < b) is 0
!(a != b) is 1
!(a == b) is 0
* (a == b) && (c > b) 두 피연산자 (5 == 5)및 (10 > 5)가 모두 1(참) 이므로 1로 출력된다
* (a == b) && (c < b) 두 피연산자 중에 피연산자 (10 < 5)가 0(불) 이므로 0으로 출력된다
* (a == b) || (c < b) 두 피연산자 중에 피연산자 (5 == 5)가 1(참) 이므로 1로 출력된다
* (a != b) || (c < b) 두 피연산자 중에 피연산자 (5 != 5)와 (10 < 5)가 모두 0(불) 이므로 0으로 출력된다
* !(a != b) 피연산자에서 (5 != 5)가 0(불) 이므로 1(참)로 출력된다
* !(a == b) 피연산자에서 (5 == 5)은 1(참) 이므로 !(a == b) 0(불)으로 출력된다
6. C언어 비트 연산자
- 비트 연산자는 C언어 프로그래밍에서 비트 수준 연산을 수행하는데 사용
연산자 | 의미 |
& | 비트 AND |
| | 비트 OR |
^ | 비트 배타적 OR |
~ | 비트 보수 |
<< | 왼쪽으로 이동 |
>> | 오른쪽으로 이동 |
7. 기타 연산자
1) 쉼표 연산자
- 쉼표 연산자는 관련 표현식을 함계 연결하는데 사용
ex) int a, c = 5, d;
2) sizeof 연산자
- sizeof 데이터(상수, 변수, 배열 구조 등) 크기를 리턴하는 단항 연산자
ex) sizeof 연산자
#include <stdio.h>
int main()
{
int a;
float b;
double c;
char d;
printf("Size of int = %lu Bytes \n", sizeof(a));
printf("Size of float = %lu Bytes \n", sizeof(b));
printf("Size of double = %lu Bytes \n", sizeof(c));
printf("Size of char = %lu Bytes \n", sizeof(d));
return 0;
}
outout) Size of int = 4 Bytes
Size of int = 4 Bytes
Size of int = 8 Bytes
Size of int = 1 Bytes
'Program > C' 카테고리의 다른 글
8. C언어 for 문 (0) | 2021.10.14 |
---|---|
7. C언어 if~else 문 (0) | 2021.10.13 |
5. C언어 입력 출력(I/O) (0) | 2021.10.11 |
4. C언어 데이터 유형 (0) | 2021.10.11 |
3. c언어 변수, 상수 및 리터럴 (0) | 2021.10.11 |
댓글