728x90
본 내용은 POSTECH '청년 AI · Big Data 아카데미 온라인 기초과정'을 수강하며 정리한 내용입니다.
Ⅳ 연산자
<연산자(사칙, 관계, 논리 연산자)>
- 연산자
- 산술 연산자 +, -, *, / 기호와 같이 이미 정의된 연산을 수행하는 기호나 키워드를 의미
- 문제를 해결하는 방법에서 도구와 같은 역할
- 피연산자
- 연산에 참여하는 변수나 값
- 산술 연산자
- + - * / %
- / : 두 수를 나눈 몫
- % : 두 수를 나눈 나머지
- 관계 연산자 (relational operator)
- > < == != >= <=
- 2개의 피연산자의 관계(크기)를 비교하기 위한 연산자
- 관계 연산자가 포함된 수식의 결과는 1(참) 아니면 0(거짓)
- printf()를 사용하여 출력할 경우 결과가 참이면 1, 거짓이면 0을 출력
- 증감 연산자
- ++ --
- for문에서 주로 사용
- 논리 연산자 (logical operator)
- && || !
- && : and, 둘 다 참이어야 참
- || : or, 둘 중 하나만 참이면 참
- ! : not, 참이면 거짓, 거짓이면 참
- 두 개 또는 하나의 논리 값을 0이나 1의 논리 값으로 평가하기 위한 연산자
- C 언어는 참과 거짓이라는 상수는 없으며 0, 0.0, '\0'은 거짓으로, 0이 아닌 모든 값은 참으로 간주 (3 && 4 -> 1)
- 조건 연산자 (조건 삼항 연산자)
- (수식1)? 수식2 : 수식3
- 수식1의 참과 거짓을 따져서 참일 경우 수식2가, 거짓일 경우 수식3이 수행됨
- sizeof 연산자
- sizeof(데이터타입)
- 대입 연산자(assignment operator)
- = += -= /= %=
- 변수의 저장 값을 대입하는 = 기호가 대입(할당) 연산자
- = 연산자 오른쪽 수식을 먼저 계산하고 결과 값을 왼쪽 변수에 대입
- 대입 연산자의 왼쪽 부분에는 반드시 변수만이 가능, 대입 연산자 왼쪽에 온 변수는 값이 변경됨
- 수식의 결과 값을 변수에 대입하지 않으면 프로그램에는 영향이 없음
- 연산자 우선순위
<연산자 예제 실습>
- 사칙연산 예제 실습 : 2개의 값을 입력받아 + - * / % 연산 후 출력
#include <stdio.h>
int main(void)
{
int a, b, add, sub, mul, div, mod;
printf("정수1 입력하세요 : ");
scanf("%d", &a);
printf("정수2 입력하세요 : ");
scanf("%d", &b);
add = a+b;
sub = a-b;
mul = a*b;
div = a/b;
mod = a%b;
printf("%d + %d = %d 입니다 \n", a, b, add);
printf("%d - %d = %d 입니다 \n", a, b, sub);
printf("%d * %d = %d 입니다 \n", a, b, mul);
printf("%d / %d = %d 입니다 \n", a, b, div);
printf("%d %% %d = %d 입니다 \n", a, b, mod);
return 0;
}
- %를 밖으로 출력하기 위해서는 %%
- "를 밖으로 출력하기 위해서는 \"
- 관계 연산 예제 : 문자와 정수를 입력 받아 관계 연산 결과 출력
#include <stdio.h>
int main(void)
{
int x, y;
char c;
printf("문자 1개 입력하세요 : ");
scanf("%c", &c);
printf("입력한 문자 %c의 아스키 10진수는 %d입니다 \n", c, c);
printf("입력한 문자 %c의 다음 문자는 %c입니다 \n", c, c+1);
printf("(%c < %c)는 %d입니다 \n", c, c+1, (c<c+1));
printf("정수 2개 입력하세요 : ");
scanf("%d %d", &x, &y);
printf("(%d >= %d)는 %d입니다 \n", x, y, (x>=y));
printf("(%d == %d)는 %d입니다 \n", x, y, (x==y));
printf("(%d != %d)는 %d입니다 \n", x, y, (x!=y));
return 0;
}
- 논리 연산 예제
#include <stdio.h>
int main(void)
{
printf("(3>2) && (1==2)의 결과는 %d 입니다. \n", (3>2) && (1==2));
printf("(3>2) || (1==2)의 결과는 %d 입니다. \n", (3>2) || (1==2));
printf("0.0 && 5의 결과는 %d 입니다. \n", 0.0 && 5);
printf("(5>2) != (1==2)의 결과는 %d 입니다. \n", (5>2) != (1==2));
printf("(3>5) || !(2==1)의 결과는 %d 입니다. \n", (3>5) || !(2==1));
printf("0.1 || 0.0의 결과는 %d 입니다. \n", 0.1 || 0.0);
printf("('A'<'B') || 0.0의 결과는 %d 입니다. \n", 'A'<'B' || 0.0);
return 0;
}
- 단축 연산 : &&이나 || 연산에서 앞부분만 보고 결과를 출력할 수 있는 경우, 뒷부분은 보지 않음
728x90
'PROGRAMMING > C' 카테고리의 다른 글
[POSTECH MOOC] 컴퓨터공학 입문Ⅱ - 2 (0) | 2021.04.06 |
---|---|
[POSTECH MOOC] 컴퓨터공학 입문Ⅱ - 1 (0) | 2021.04.06 |
[POSTECH MOOC] 컴퓨터공학 입문Ⅰ - 3 (0) | 2021.04.05 |
[POSTECH MOOC] 컴퓨터공학 입문Ⅰ - 2 (0) | 2021.04.05 |
[POSTECH MOOC] 컴퓨터공학 입문Ⅰ - 1 (0) | 2021.04.05 |
댓글