본문 바로가기
프로그래밍언어/C언어

연산자 종류 - 복합 대입 연산자

by J코딩 2021. 9. 6.
반응형

복합 대입 연산자란 산술연산자와 대입 연산자를 하나로 나타내는 기호를 의미합니다. 예를 들어 'a = a + b'는 대입 연산자 =과 덧셈 연산자 + 를 함께 사용하는 복합 대입 연산자입니다. 'a+b' 연산의결과를 다시변수 a에 저장하고 있음을 알 수 있습니다.

'버스 카드 충전'을 '버카충' 처럼 인간의 표현에도 간략히 표현하는 게 있듯이, 'a=a+b' 복합 대입 연산자를 간략히 표현하면 'a =+ b'로 표현될 수 있습니다. 프로그램 중에 코딩을 간략하게 표현하여 가독성을 높이고자 할 때 사용합니다.

다음은 복합 대입 연산자의 종류입니다.

대입 연산자 복합 대입 연산자 설명
a = a + b a+=b a + b를 먼저 수행한 후에 a에 값을 저장
a = a - b a-=b a - b를 먼저 수행한 후에 a에 값을 저장
a = a * b a*=b a * b를 먼저 수행한 후에 a에 값을 저장
a = a / b a/=b a / b를 먼저 수행한 후에 a에 값을 저장
a = a % b a%=b a % b를 먼저 수행한 후에 a에 값을 저장

간단한 예제를 가지고 복합 대입 연산자의 사용법을 설명하겠습니다.

4행에서 변수 num1, num2, num3, num4, num5를 생성하여 데이터를 저장합니다.

7행에서 'num1+num2' 연산을 먼저 실행하고 그 결과를 변수 num1에 저장합니다. 위 그림처럼 변수 num1의 값 1과 변수 num2의 값 2를 읽어 들여 덧셈 연산을 하고 그 결과를 현재 변수 num1에 다시 저장하므로, 변수 num1에는 3이 저장 되었다는 것을 10행의 printf()함수 출력 결과를 통해 확인할 수 있습니다.

13행은 값 2는 이름이 없는 것으로 보아, 숫자 2는 상수입니다. 그 자체의 의미가 있는 리터럴 상수이기 때문에 메모리 공간에 붙여진 이름이 없습니다. 'num2-2' 연산을 먼저 실행하고 그 결과를 다시 변수 num2에 저장하므로, 변수 num2에는 0이 저장 되었다는 것을 16행의 printf()함수 출력 결과를 통해 확인할 수 있습니다.

19행은 값 2는 이름이 없는 것으로 보아, 숫자 2는 상수입니다. 그 자체의 의미가 있는 리터럴 상수이기 때문에 메모리 공간에 붙여진 이름이 없습니다. 'num3*2' 연산을 먼저 실행하고 그 결과를 다시 변수 num3에 저장하므로, 변수 num3에는 6이 저장 되었다는 것을 22행의 printf()함수 출력 결과를 통해 확인할 수 있습니다.

25행은 값 2는 이름이 없는 것으로 보아, 숫자 2는 상수입니다. 그 자체의 의미가 있는 리터럴 상수이기 때문에 메모리 공간에 붙여진 이름이 없습니다. 'num4/2' 연산을 먼저 실행하고 그 결과를 다시 변수 num4에 저장하므로, 변수 num4에는 2이 저장 되었다는 것을 28행의 printf()함수 출력 결과를 통해 확인할 수 있습니다.

31행은 값 2는 이름이 없는 것으로 보아, 숫자 2는 상수입니다. 그 자체의 의미가 있는 리터럴 상수이기 때문에 메모리 공간에 붙여진 이름이 없습니다. 'num5%2' 연산을 먼저 실행하고 그 결과를 다시 변수 num5에 저장하므로, 변수 num5에는 1이 저장 되었다는 것을 34행의 printf()함수 출력 결과를 통해 확인할 수 있습니다.

 

반응형

댓글