본 글은 C언어를 배우고 나서 복습 겸 정리한 글입니다.
요약
연산자
연산자
는 값을 비교하거나 계산할 때 쓰인다.
연산이 되는 값을 피연산자
라고 한다.
C에서 연산자의 우선순위
산술 > 시프트 > 비교 > 비트 > 논리 > 삼항 > 대입
연산을 명확히 하려면 ()
를 사용하면 된다.
산술 연산자
단항 연산자
단항 연산자에는 부호 표시를 위한 +,- 연산자와 값을 증가시키고 감소시키는 증감 연산자가 있다.
증감 연산자는 위치에 따라 연산 순서가 바뀐다.
int x = -1;
printf("x1 : %d \n", x++);
printf("x2 : %d", ++x);
위 코드에서 x1과 x2는 뭐라고 출력될까
x1 : -1, x2: 1으로 출력될 것이다.
해석해보면,
처음에 정수형 변수 x가 선언됨과 동시에 1이 할당되었다.
그다음 x++이 출력이 되는데 여기서 ++이 증감 연산자이고 변수 뒤에 붙어 있으므로 후위 증감 연산자라고 한다.
후위 증감 연산자는 증감 연산이 나중에 실행된다.
printf("x1 : %d \n", x++);에서 x의 초기값인 -1이 출력되고 1이 증가한 0이 출력된다.
그다음엔 ++x가 출력이 된다. ++이 변수 앞에 붙어 있으므로 전위 증감 연산자라고 한다.
전위 증감 연산자는 증감 연산이 먼저 수행된다.
printf("x2 : %d \n", ++x); 에서는 x값이 0이었고 전위 증감이므로
먼저 1이 증가한 1이 x에 저장된 후에 출력이 되므로 1이 출력된다.
이항 연산자
이항 연산자는 피연산자가 2개가 필요한 산술 연산자로 사칙연산과 나머지 계산을 할 수 있는 연산자이다.
+ : 더하기
- : 빼기
* : 곱하기
/ : 나누기
% : 나머지 (a % b => a를 b로 나눈 나머지)
비교 연산자
비교 연산자
비교 연산자는 피연산자 사이의 관계를 비교한다.
비교 연산의 결과가 참이면 1을, 거짓이면 0을 반환한다.
== : 값이 같은지
!= : 값이 다른지
<= : 이하
>= : 이상
< : 미만
> : 초과
#include <stdio.h>
int main()
{
int a = 1;
int b = 5;
printf("%d\n", a==b);
printf("%d\n", a!=b);
printf("%d\n", a<=b);
printf("%d\n", a>=b);
printf("%d\n", a<b);
printf("%d\n", a>b);
return 0;
}
위 코드의 실행결과는 0 1 1 0 1 0이다.
a에는 1이, b에는 5가 저장되어있다.
처음 출력은 'a와 b가 같다 (==)' 가 거짓이므로 0을 출력
다음은 'a와 b가 같지 않다(!=)' 가 참이므로 1을 출력
다음은 'a가 b보다 작거나 같다(<=)' 가 참이므로 1을 출력
다음은 'a가 b보다 크거나 같다(>=)' 가 거짓이므로 0을 출력
다음은 'a가 b보다 작다(<)' 가 참이므로 1을 출력
다음은 'a가 b보다 크다(>)' 가 거짓이므로 0을 출력
논리 연산자
논리 연산자
논리 연산자는 피연산자들을 판단하여 참, 거짓을 결정한다.
&& : 모두 참일때 참
|| : 한쪽만 참이어도 참
! : 논리를 뒤집음
A | B | A && B | A || B |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 |
&&은 둘다 참이어야 참, ||는 둘 중 하나만 참이어도 참으로 결정한다.
A | !A |
0 | 1 |
1 | 0 |
!은 논리를 반대로 뒤집어버린다.
'Programming > C Memo' 카테고리의 다른 글
06. 출력과 주석 (0) | 2020.02.10 |
---|---|
05. 연산자(2) [ 비트, 시프트, 삼항, 대입] (0) | 2020.02.10 |
03. 자료형 (0) | 2020.02.09 |
02. 변수와 상수 (0) | 2020.02.09 |
01. Hello World! (0) | 2020.02.08 |
댓글