arithmetic result

산술식은 결과값뿐 아니라 결과 타입까지 만든다

같은 `/` 연산자라도 피연산자 타입에 따라 몫만 남거나 소수점까지 계산된다. 증감 연산은 값이 쓰이는 시점도 함께 바꾼다.

피연산자 조합별 결과

type table
int / int

정수 나눗셈

소수점 이하는 버려지고 결과도 정수 규칙을 따른다.

double / int

실수 나눗셈

한쪽이 실수이면 다른 쪽도 승격되어 소수점이 보존된다.

int % int

나머지 계산

정수에만 적용하며 순환 인덱스와 짝수 검사에 자주 쓴다.

static_cast

의도적 승격

정확한 평균처럼 연산 전 타입을 바꾸고 싶을 때 사용한다.

읽는 순서

evaluation
1

괄호 먼저

의도를 고정한 괄호 안 식을 가장 먼저 계산한다.

2

곱셈 계열

`*`, `/`, `%`는 덧셈과 뺄셈보다 우선한다.

3

왼쪽 결합

같은 우선순위의 산술 연산은 보통 왼쪽부터 읽는다.

4

증감 시점

`++x`는 바꾼 뒤 사용, `x++`는 사용 뒤 바꾼다.

실수 방지 타입 변환, 나눗셈, 증감이 한 줄에 함께 있으면 중간값을 변수로 나누어 계산 순서와 결과 타입을 눈에 보이게 만든다.