더북(TheBook)

미션 33: 배열을 포인터로 접근하기 ➋

길이가 5인 배열 a를 선언하고 1, 2, 3, 4, 5로 초기화한 다음 이 배열의 마지막 요소를 가리키는 포인터 변수 b를 선언하세요. 포인터 변수 b에 저장된 값을 1씩 감소시키는 형태의 연산을 기반으로, 모든 배열 요소에 접근하여 배열에 저장된 모든 정수를 더한 결과를 구하는 코드를 작성하세요.

pointer2_9.c

#include <stdio.h>
 
main() {
    int a[5] = { 1,2,3,4,5 };
    int *b;
 
    b = &a[4];             // 배열의 마지막 요소의 주소 값으로 포인터 변수 b 초기화
    int sum = 0, i;
 
    for (i = 0; i < 5; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
 
    for (i = 0; i < 5; i++) {
        printf("%d ", *b); // 포인터 변수 b가 가리키는 배열의 요소 값 출력
        sum += *b-- ;      // 포인터 변수 역참조 값을 sum에 더한 후 포인터 연산을 통해 1 감소
    }
    printf("\n");
    printf("합은 : %d\n", sum);
}

실행 결과

1 2 3 4 5

5 4 3 2 1

합은 : 15

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