본문 바로가기

고급프로그래밍/C언어

[#05] 연산자의 이해(대입, 산술, 복합, 증감, 관계, 논리, 조건, 비트 연산)

1. 대입 연산자(Assignment Operations)

대입 연산자는 '='(Assignment) 기호를 사용합니다.

하지만 프로그래밍에서 '='는 "같다"라는 의미가 아닌 오른쪽에서 왼쪽으로 넘겨 준다는 할당의 의미를 갖습니다.

그러므로 '=='(Eqaul) 기호와 구분하여 써야 합니다.

기호(Operators) 사용(Usage) 사용예(Example)
= var = value;  a = 5;

 

#include <stdio.h>

int main(void)
{
	a = 10;
	printf("a의 값은 %d 입니다. ", a);
    
	return 0;
}

 

2. 산술 연산자(Arithmetic Operations)

기호(Operators) 사용(Usage) 사용예(Example)
+ var = value1 + value2;  a = 5 + 4;
- var = value1 - value2;  a = 5 - 4;
* var = value1 * value2;  a = 5 * 4;
/ var = value1 / value2;  a = 5 / 4;
% var = value1 % value2;  a = 5 % 4;
#include <stdio.h>

int main(void)
{
	int a;
    
	a = 5 + 3;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 8
	a = 5 - 3;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 2
	a = 5 * 3;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 15
	a = 5 / 3;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 1
	a = 5 % 3;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 2
    
	return 0;
}

 

3. 복합 대입 연산자(Compound-Assignment Operations)

기호(Operators) 사용(Usage) 사용예(Example)
+= var += value;  num += 5;  같은의미 num = num + 5;
-= var -= value;  num -= 5;  같은의미 num = num - 5;
*= var *= value;  num *= 5;  같은의미 num = num * 5;
/= var /= value;  num /= 5;  같은의미 num = num / 5;
%= var %= value;  num %= 5;  같은의미 num = num % 5;

 

#include <stdio.h>

int main(void)
{
	int a = 5;
    
	a += 5;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 10
	a -= 5;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 5
	a *= 5;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 25
	a /= 5;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 5
	a %= 2;
	printf("a의 값은 %d 입니다. ", a);	// 출력 : 1
    
	return 0;
}

 

4. 증감연산자(Incerement/Decrement Operations)

기호(Operators) 사용(Usage) 사용예(Example)
++ 후위 증감자 value++; num += 1 같은의미 num = num + 1
전위 증감자 ++value;
-- 후위 감소자 value--; num -= 1 같은의미 num = num - 1
전위 감소자 --value;
#include <stdio.h>

int main(void)
{
	int a = 5;
    
	printf("1. a의 값은 %d 입니다. ", a);		// 출력 : 5
	printf("2. a++의 값은 %d 입니다. ", a);		// 출력 : 5
	printf("3. ++a의 값은 %d 입니다. ", a);		// 출력 : 7
	printf("4. a의 값은 %d 입니다. ", a);		// 출력 : 7
	printf("5. a--의 값은 %d 입니다. ", a);		// 출력 : 7
	printf("6. --a의 값은 %d 입니다. ", a);		// 출력 : 5
	printf("7. a의 값은 %d 입니다. ", a);		// 출력 : 5
    
	return 0;
}

 

5. 관계 연산자(Relational Operations)

기호(Operators) 사용(Usage) 사용예(Example)
    x = 3, y = 5
== value1 == value2; x == 3 참(true), y == 3 거짓(false)
!= value1 != value2; x != y 거짓(false)
> value1 > value2; x > y
>= value1 >= value2; x >= y
< value1 < value2; x < y
<= value1 <= value2; x <= y
#include <stdio.h>

int main(void)
{
	int x = 3;
	int y = 5;
	printf("1. x==y 는 %d 입니다. ", x==y);		// 출력 : 1(true)
	printf("2. x==3 는 %d 입니다. ", x==3);		// 출력 : 1(true)
	printf("3. x!=y 는 %d 입니다. ", x!=y);		// 출력 : 1(true)
	printf("4. x>y 는 %d 입니다. ", x>y);		// 출력 : 0(false)
	printf("5. x>=y 는 %d 입니다. ", x>=y);		// 출력 : 0(false)
	printf("6. x<y 는 %d 입니다. ", x<y);		// 출력 : 1(true)
	printf("7. x<=y 는 %d 입니다. ", x<=y);		// 출력 : 1(true)
    
	return 0;
}

 

6. 논리 연산자(Logical Operations)

기호(Operators) 사용(Usage) 사용예(Example)
&&

true && true

true && false

(5>4) && (2>1) 참(true) 

(3>4) && (2>1) 거짓(false)

||

false || true

false || false

(3>4) || (2>1) 참(true) 

(3>4) || (2>3) 거짓(false)

!

!true       !false

!(4>3)  참(true)

!(3>4) 거짓(false)

#include <stdio.h>

int main(void)
{
	a = 10;
    
	printf("1. true && true 의 값은 %d 입니다. ", (5>4)&&(2>1));
	printf("2. true && false 의 값은 %d 입니다. ", (3>4)&&(2>1));
	printf("3. false || true 의 값은 %d 입니다. ", (3>4)||(2>1));
	printf("4. false || false 의 값은 %d 입니다. ", (3>4)||(2>3));
	printf("5. !true 의 값은 %d 입니다. ", !(4>3));
	printf("6. !false 의 값은 %d 입니다. ", !(3>4));
    
	return 0;
}

 

7. 조건연산자

기호(Operators) 사용(Usage) 사용예(Example)
= var = value;  a = 5;
#include <stdio.h>

int main(void)
{
	a = 10;
	printf("a의 값은 %d 입니다. ", a)
	return 0;
}

8. 비트연산자

비트 연산자에 대해서 설명하기 전에 "[#04]컴퓨터의 데이터 표현방식과 진법" 절에 대해서 이해를 해야합니다.

https://coducation.tistory.com/6?category=839226

기호(Operators) 사용(Usage) 사용예(Example)
= var = value;  a = 5;
#include <stdio.h>

int main(void)
{
	a = 10;
	printf("a의 값은 %d 입니다. ", a)
	return 0;
}