더북(TheBook)

미션 28: 배열을 갖고 포인터 연산을 통해 접근하고 변경하기

배열 a를 생성하여 1, 2, 3, 4, 5로 저장하고 포인터 b를 통해 배열 a의 값을 11, 12, 13, 14, 15으로 변경한 후 다양한 방법으로 출력하는 코드를 작성하세요.

pointer12.c

#include <stdio.h>
 
main() {
    int a[5] = { 1, 2, 3, 4, 5 };
    int *b;
    int i;
 
    printf("기존 배열 a의 값 출력\n");
 
    for (i = 0; i < 5; i++)
        printf("%d ", a[i]);
    printf("\n");
 
 
    printf("\n배열 a의 각 요소에 10을 더하여 변경\n\n");
   
    b = a;                 // b = &a[0];, 배열 a의 첫 번째 인덱스의 주소 값을 포인터 변수 b에 저장
 
    for (i = 0; i < 5; i++)
        *(b + i) += 10;    // 포인터 연산한 결과를 역참조하며 배열 a의 값 변경
 
    printf("변경된 배열 a의 값 출력 - 첫 번째 방법 \n");
    
    for (i = 0; i < 5; i++)
        printf("%d ", a[i]);
    printf("\n");
 
    printf("변경된 배열 a의 값 출력- 두 번째 방법 \n");
    
    for (i = 0; i < 5; i++)
        printf("%d ", *(b + i));
    printf("\n");
 
    printf("변경된 배열 a의 값 출력- 세 번째 방법 \n");
   
    for (i = 0; i < 5; i++)
        printf("%d ", b[i]);  // ➊
    printf("\n");
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.