본문 바로가기
개발/C, C++

[C/C++] 대입 연산자

by 77monkey 개발자 2023. 9. 6.
반응형

변수를 다루면서 너무 자연스럽게 대입 연산자에 대해서 서술했습니다. 하지만 대입 연산자에 대해서 한 번쯤은 짚고 넘어가는 것이 좋을 것 같아서 준비했습니다. 

 

대입 연산자

대입 연산자는 변수에 값을 할당하는 데 사용하는 연산자입니다. 대입 연산자를 통해서 변수에 저장되어 있는 값을 바꿀 수 있습니다. 

 

단순 대입 연산자( = ) 

보통 변수에 값을 할당할 때 사용하는 연산자입니다. 

 

복합 대입 연산자

복합 대입 연산자는 단순 대입 연산자 앞에 산술 연산자가 붙은 형태입니다. 결과적으로 보면 복합 대입 연산자 왼쪽 변수에서 복합 대입 연사자 오른쪽 변수를 연산해서 복합 대입 연산자에 값을 저장하게 됩니다.

  • += : 연산자 왼쪽의 변수에 연산자 오른쪽 변수를 더해서 연산자 왼쪽 변수에 대입
  • -= :  연산자 왼쪽의 변수에 연산자 오른쪽 변수를 빼서 연산자 왼쪽 변수에 대입
  • *= :  연산자 왼쪽의 변수에 연산자 오른쪽 변수를 곱해서 연산자 왼쪽 변수에 대입
  • /= : 연산자 왼쪽의 변수에 연산자 오른쪽 변수를 나눠서 연산자 왼쪽 변수에 대입
  • %= : 연산자 왼쪽의 변수에 연산자 오른쪽 변수를 나눈 나머지 결과를 연산자 왼쪽 변수에 대입

한 가지 주의해야 할 점이 있는데, 예를 들어 a = 2, a *= 2 + 3; 이라는 식이 있다고 합니다. 답부터 말씀드리면 a는 10이 됩니다. 그런데 사칙연산의 우선순위를 생각하셔서 a = (a * 2)  + 3으로 생각하실 수도 있습니다. 하지만 위의 설명대로 a = a * (2 + 3)이 됩니다. 헷갈리시면 괄호를 쳐서 우선순위를 확실하게 하시는 것도 하나의 방법입니다. 

 

대입 연산자 예시

단순 대입 연산자( = ) 

단순 대입 연산자는 이전부터 코드에서 사용되어서 아실테지만, 혹시 몰라서 코드를 준비해 봤습니다. 

#include <stdio.h>

int main() {

	int a = 10;
	int b = 5;

	return 0;
}

 

복합 대입 연산자

복합 대입 연산자는 코드에 주석을 달아서 원래 어떤 식이었는지 표현해 봤습니다. 

#include <stdio.h>

int main() {

	int a = 2;
	int b = 3;
	int c = 4;
	int d = 5;
	int e = 6;

	a += 2; // a = a + 2;
	b -= 2; // b = b - 2;
	c *= 2; // c = c * 2;
	d /= 2; // d = d / 2;
	e %= 2; // e = e % 2;

	return 0;
}

코드가 실행된 다음에 a, b, c, d, e 값을 보면 다음과 같습니다. 

  • a = 4
  • b = 1
  • c = 8
  • d = 2
  • e = 0

마무리

대입 연산자는 사실 너무 자연스럽게 사용하고 있어서 새로운 부분이 없었을 것이라고 생각됩니다. 다만, 복합 대입 연산자 부분에서 헷갈릴 수 있는 포인트에 대해서 말씀드렸기 때문에 해당 부분에 대해서 명심하시길 바랍니다. 개발을 하다 보면 애매하다 싶거나 생각했던 결과가 나오지 않은 경우를 막기 위해서 괄호를 통해서 우선순위를 주는 경우도 있습니다. 애매할 땐 괄호를 기억해 주시길 바랍니다. 

반응형

'개발 > C, C++' 카테고리의 다른 글

[C/C++] 관계 연산자  (0) 2023.09.08
[C/C++] 증감 연산자(++, --)  (0) 2023.09.07
[C/C++] 산술 연산자  (0) 2023.09.05
[c/c++] 2차원 배열, N차원 배열  (0) 2023.08.30
[c/c++] 배열 룩업 테이블(look up table)  (0) 2023.08.27