더북(TheBook)

9.4 2차원 배열의 주소 연산

a의 값이 3이라고 가정하면 a + 1은 무엇일까요? 답은 당연히 4이고 너무 쉬운 문제라고 생각할 것입니다. 그러나 a값이 주소라면 문제는 달라집니다. 4가 아닐 수도 있습니다.

예를 들어 int a[2][3] = { 1, 2, 3, 4, 5, 6 };에서 a는 배열의 이름이자 배열의 첫 번째 방의 주소를 의미합니다. 그렇다면 a + 1은 무엇일까요?

a의 값이 104라고 하였을 때(다시 말해 a[0][0]의 주소 값이 104라고 가정하면) a + 1104 + 1이라고 생각할 수 있습니다. 그러나 여기서 + 1은 숫자 1을 더하라는 의미가 아닙니다. a는 배열 a에 속한 첫 번째 배열의 주소입니다. 여기에 + 1을 하라는 의미는 배열 a에 속한 두 번째 배열의 주소를 말합니다. 즉, a가 104라면 a + 1a[1][0]의 주소인 116을 의미합니다.

a[1]은 배열 a에 속한 두 번째 배열의 첫 번째 요소의 주소를 의미합니다(그림 9-11 참고). 그렇다면 a[1] + 1은 무엇일까요?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.