더북(TheBook)

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 문을 사용해 배열의 값을 출력합니다.

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