연산자
특정 연산을 요구할 때 사용하는 약속된 기호.
대입 연산자 ' = '
우리가 아는 흔한 기호. 연산자 오른쪽에 있는 값을 연산자 왼쪽에 있는 변수에 대입한다.
ex) int num = 10;
이렇게 되면 변수 num은 정수 '10' 이라는 값을 저장하게 된다.
산술 연산자 ' +, -, *, /, % '
왼쪽부터 차례대로 '덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 값 반환'을 의미한다.
결합방향은 왼쪽에서 오른쪽으로.
//예제 1
#include <stdio.h>
int main(void){
int num1 = 20, num2 = 10; // 정수형 4바이트 자료형 num1, num2 변수에 각각 20, 10 대입
int add = num1 + num2; // 두 피연산자 값을 더함
int sub = num1 - num2; // 왼쪽 피연산자에서 오른쪽 피연산자 값을 뺌
int mul = num1 * num2; // 두 피연산자의 값을 곱함
int div = num1 / num2; // 왼쪽 피연산자 값을 오른쪽 피연산자 값으로 나눔
int rem = num1 % num2; // 나눴을 때 얻게되는 나머지값 반환
printf("add : %d, sub : %d, mul : %d, div : %d, rem : %d\n", add, sub, mul, div, rem);
return 0;
}
//실행 결과
add : 30, sub : 10, nul : 200, div : 2, rem : 0
부호 연산자
수가 양을 뜻하는지 음을 뜻하는지 표시하기 위한 연산자. 별 거 없다.
ex) -3, +5
증가, 감소 연산자 ' ++, -- '
변수에 저장된 값을 1 증가 및 감소시키는 경우에 사용되는 연산자.
연산자가 변수의 앞에 붙냐 뒤에 붙냐에 따라 쓰임새가 달라진다.
// 예제 2
#include <stdio.h>
int main(void){
int num1 = 1, num2 = 5; // num1과 num2에 각각 1, 5 대입
printf("%d, %d\n", num1, num2);
printf("%d, %d\n", ++num1, --num2); // 값을 1 증가 및 감소 후 과정 진행
printf("%d, %d\n", num1, num2);
printf("%d, %d\n", num1++, num2--); // 과정 진행 후 값을 1 증가 및 감소
printf("%d, %d\n", num1, num2);
return 0;
}
//실행 결과
1, 5
2, 4 <- 먼저 값이 증감됨 (선증감 후과정)
2, 4
2, 4 <- 값이 증감되지않고 유지됨 (선과정 후증감)
3, 3
관계 연산자 ' <, >, ==, !=, <=, >= '
대소와 동등의 관계를 따지는 연산자.
만약 조건을 만족한다면 1(=True), 만족하지 않는다면 0(=False) 를 반환한다.
// 예제 3
#include <stdio.h>
int main(void)
{
int num1 = 10, num2 = 20;
int result1, result2, result3, result4, result5, result6;
result1 = (num1 > num2); // num1이 num2보다 큰가?
result2 = (num1 < num2); // num1이 num2보다 작은가?
result3 = (num1 == num2); // 둘이 서로 같은가?
result4 = (num1 != num2); // 둘이 서로 다른가?
result5 = (num1 >= num2); // num1이 num2보다 크거나 같은가?
result6 = (num1 <= num2); // num1이 num2보다 작거나 같은가?
printf("%d %d %d %d %d %d\n", result1, result2, result3, result4, result5, result6);
return 0;
}
//실행 결과
0 1 0 1 0 1
논리 연산자 ' &&, ||, ! '
'논리곱, 논리합, 논리부정'을 표현하는 연산자.
이것도 관계 연산자랑 비슷하게 논리에 맞는다면 1(=True), 맞지 않는다면 0(=False)를 반환한다.
// 예제 4
#include <stdio.h>
int main(void){
int num1 = 10, num2 = 20;
int rslt1, rslt2, rslt3;
// 'A && B', A와 B 둘 중에 하나라도 True가 안되면 False를 반환
// 둘 다 True면 True를 반환
rslt1 = (num1 > num2 && num1 < num2);
// 'A || B', A나 B 둘 중에 하나라도 True면 True를 반환
// 둘 다 False면 False를 반환
rslt2 = (num1 == num2 || num1 != num2);
// '!A', A가 True면 False를 반환, False면 True를 반환
rslt3 = !(num1 <= num2);
printf("%d %d %d", rslt1, rslt2, rslt3);
return 0;
}
//실행 결과
0 1 0
콤마 연산자 ' , '
둘 이상의 변수를 동시에 선언하거나, 둘 이상의 문장을 한 행에 삽입하는 경우에 사용되는 연산자.
다른 연산자들과 달리 '구분'을 목적으로 주로 사용된다.
// 예제 5
#include <stdio.h>
int main(void){
int num1= 10, num2 = 20, num3 = 30; // 둘 이상의 변수 동시 선언(자료형 int로 묶임)
printf("&d", num1), printf("%d", num2), printf("%d", num3); // 둘 이상의 문장을 한 행에 삽입
return 0;
}
아직 많이 미숙합니다.
오타, 지적 환영합니다.
'Learn & Develop > C' 카테고리의 다른 글
C언어 - 상수의 종류와 자료형의 변환 (0) | 2021.09.03 |
---|---|
C언어 - 기본 자료형의 종류와 수의 표현방식 (0) | 2021.09.03 |
C언어 - 연산자(2) (0) | 2021.09.03 |
C언어 - 2진수와 16진수 (0) | 2021.09.02 |
C언어 - 다차원 배열(1차원 배열, 2차원 배열, 3차원 배열) (0) | 2019.12.01 |