복합 대입 연산자란 산술연산자와 대입 연산자를 하나로 나타내는 기호를 의미합니다. 예를 들어 '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()함수 출력 결과를 통해 확인할 수 있습니다.
'프로그래밍언어 > C언어' 카테고리의 다른 글
연산자 - 비교 연산자 (0) | 2021.09.08 |
---|---|
연산자 종류 - 증감연산자 (0) | 2021.09.07 |
연산자 종류 - 산술 연산자 (0) | 2021.09.03 |
연산자 종류 - 대입 연산자 (0) | 2021.09.02 |
부록 - 변수와 변수의 시작 주소 (0) | 2021.09.01 |
댓글