신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

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;
}

 

 

 

조건

?:

 
조건식 ? 식1 : 식2 
 
조건식이 참일때 식1을 실행하고, 거짓일때는 식2 를 실행한다.
#include <stdio.h>
 
int main(void) {
 
    // 조건 연산자
    int i = 10;
    int j = 20;
    printf("(i > j) ? 참 : 거짓 => %d\n", (i > j) ? 1 : 0);
 
    return 0;
}

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기