for
루프 안의 세 문장은 1.2절에서 처음으로 할당문에 대해 배울 때 봤던 교환 연산을 구현한다. 이 코드를 일곱 개의 요소를 가진 [3, 1, 4, 1, 5, 9, 2]
배열에 적용할 때 요소들이 어떻게 바뀌는지 [표 1.4.2]의 비공식 트레이스를 보면 이해하기 쉬울 것이다. 이 표에서는 for
루프를 반복할 때마다 i와 일곱 개의 요소가 어떻게 바뀌는지 추적한다.
▼ 표 1.4.2 배열을 역순으로 바꾸는 코드의 비공식 트레이스
i |
a[] |
||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
3 |
1 |
4 |
1 |
5 |
9 |
2 |
0 |
2 |
1 |
4 |
1 |
5 |
9 |
3 |
1 |
2 |
9 |
4 |
1 |
5 |
1 |
3 |
2 |
2 |
9 |
5 |
1 |
4 |
1 |
3 |
|
2 |
9 |
5 |
1 |
4 |
1 |
3 |
배열을 사용할 때는 당연히 값을 바꿀 수 있을 것이라고 생각하겠지만, 데이터 타입을 설계할 때 가변성은 중요한 문제이며 여러 가지 의미를 지닌다. 이 의미에 대해서는 이번 절 뒤에서 간략히 설명하지만, 자세한 것은 3.3절에서 설명한다.