2. 포인터의 사용 예 포인터와 관련된 &, * 연산자를 사용하여 포인터의 사용 예를 보인다. 다음 프로그램에는 두 개의 단순 변수, a, b와 두 개의 포인터 변수 p1, p2를 선언한다.
윈도 운영체제에서 동작하는 여러분의 컴퓨터에서 주소 값은 4 바이트 기억공간에 표현된다. 이러한 가정하에서, p1, p2의 주소는 각각 1008, 1012가 된다. 프로그램에 변수, a, b에 값을 배정하는 배정문을 다음과 같이 추가한다. 다음에, & 주소 연산자를 사용하여 p1, p2에 a, b의 주소 값을 배정한다.
이제 *의 간접 참조연산자를 사용하여 p1, p2가 가리키고 있는 곳의 값에 접근한다. 먼저, p1이 가리키고 있는 곳의 값을 가져와서 b에 저장한다.
포인터 변수가 가리키고 있는 곳의 값을 다른 포인터 변수가 가리키고 있는 곳에 저장하는 것이 가능하다. 다음은 p2가 가리키고 있는 곳의 값을 가져와서 p1이 가리키는 곳에 저장한다.
위의 배정문은 p1, p2가 각각 a, b를 가리키므로, 다음 배정문의 실행 효과에 동일함을 알 수 있다.
위 배정문의 수행 결과로, p2는 p1의 주소 값을 갖게 되고, 따라서 p2는 이제 변수 b 대신에 a를 가리키게 된다. 결과적으로, p1, p2는 동일한 변수 a를 가리킨다. 포인터 사용을 알아보기 위해서, 위에서 살펴본 문장들을 다시 한번 실행시켜 보면서 그 실행효과를 살펴본다. 프로그램 11-3의 마지막 두 문장을 눈여겨보라. p2가 가리키고 있는 곳의 값을 10으로 변경하고, p1이 가리키고 있는 곳의 값을 가져와서 출력한다. 마지막 두 번째 문장의 수행이 마지막번째 문장의 수행에 영향을 미친다는 것을 알 수 있다. 즉, p2가 가리키는 곳의 값을 변경하였으나, 이것은 p1이 가리키는 곳의 값도 변경한다. 이것은 p1이 가리키고 있는 곳과 p2가 가리키고 있는 곳이 같기 때문이다.
|
|
[프로그램 단위 입력 실행] 다음 실습창을 통해서 프로그램 11-3의 실행과정을 실습한다. (여러분은 실습창의 왼편에 위치한 '새프로그램 입력' 버튼을 클릭하여 새로운 프로그램을 입력하여 실행시켜 볼 수 있다. ) |
|
![]() |
|