7.3.3 실습 2: 포인터로 배열의 값 바꾸기
주소를 전달해 두 변수의 값을 교환하는 방법을 알아봤습니다. 이 방법을 응용해 배열의 값을 바꿔 보겠습니다. 배열의 값은 10, 20, 30이고, 이 중에서 세 번째 값을 50으로 바꿉니다.
➊ main()함수 앞에 changeArray()라는 함수를 선언합니다. changeArray()함수는 배열의 주소를 전달받아 함수 안에서는 배열의 값을 바꿉니다. 따라서 매개변수를 포인터 변수로 선언해야 합니다. 포인터 변수의 이름은 ptr로 합니다.
➋ main()함수에 크기가 3인 arr2라는 이름의 배열을 선언하고 값을 넣어 초기화합니다.
➌ main()함수 뒤에 changeArray()함수 선언을 가져와 정의합니다. 앞에서 배열의 세 번째 값을 50으로 바꾼다고 했죠? 배열의 세 번째 요소는 인덱스로 2이므로 ptr[2]로 표시하고 여기에 50을 넣으면 됩니다.
➍ main()함수에서 changeArray()함수를 호출합니다. 앞에서 배웠듯이 함수에서 값을 변경하려면 함수를 호출할 때 주소를 전달해야 합니다. 배열의 시작 주소는 배열의 이름이라고 했습니다. 따라서 &를 붙일 필요 없이 arr2를 그대로 changeArray()함수에 전달합니다.
➎ 배열의 값이 바뀌었는지 확인하기 위해 for 문을 사용해 배열의 값을 출력합니다.