더북(TheBook)

7.3.3 포인터로배열값바꾸기.c

int main(void) {
    int arr2[3] = { 10, 20, 30 };
    // changeArray(arr2); 
    changeArray(&arr2[0]); // 배열의 시작 주소(첫 번째 요소의 주소) 전달
    for (int i = 0; i < 3; i++) {
        printf("%d\n", arr2[i]);
    }
    return 0;
} 

실행결과 icon_con

10
20
50

배열의 이름을 전달했을 때와 실행결과가 똑같이 나옵니다. 배열은 연속된 공간에 할당하므로 주소가 연속됩니다. 따라서 배열의 시작 주소인 첫 번째 요소의 주소를 전달하면 시작 주소를 기준으로 지정한 요소의 위치를 찾아 값을 바꿀 수 있습니다.

2.5 scanf( )로 입력받기에서 scanf_s()함수로 값을 입력받을 때 변수 앞에 &를 붙인 이유를 이제는 확실히 알 수 있겠죠? 포인터 변수를 배웠으니 포인터 변수를 프로그램에 적용해 봅시다.

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