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;
}
실행결과 |
10 20 50 |
배열의 이름을 전달했을 때와 실행결과가 똑같이 나옵니다. 배열은 연속된 공간에 할당하므로 주소가 연속됩니다. 따라서 배열의 시작 주소인 첫 번째 요소의 주소를 전달하면 시작 주소를 기준으로 지정한 요소의 위치를 찾아 값을 바꿀 수 있습니다.
2.5 scanf( )로 입력받기에서 scanf_s()함수로 값을 입력받을 때 변수 앞에 &를 붙인 이유를 이제는 확실히 알 수 있겠죠? 포인터 변수를 배웠으니 포인터 변수를 프로그램에 적용해 봅시다.