본문 바로가기
C++/포인터

[C++] 배열의 원소를 포인터로 접근하기 ar[i]=*(ar+i)

by bigpicture 2022. 8. 12.
반응형

배열의 원소에 접근하여 값을 변경하는 등의 행위를 포인터를 이용하여 수행하는 방법을 알아봅시다. 

배열을 하나 정의합시다. 

int ar[3]={1,2,3};


배열의 첫번째 원소에 접근하는 방법은 두 가지가 있습니다. 하나는 배열의 인덱싱을 이용하는 방식입니다. 아래와 같습니다. 

ar[0]


다른 하나는 포인터를 이용하는 방식입니다. 아래와 같습니다. 

*ar


아래 코드를 출력해보면 결과가 1로 동일합니다. 

cout<<ar[0]<<endl;
cout<<*ar<<endl;


이번에는 두번째 원소에 접근해봅시다. 인덱싱을 이용한 방법은 ar[1] 입니다. 포인터를 이용하려면 어떻게 해야할까요? 아래와 같이 배열 이름이라는 포인터에 1을 더해주면 됩니다. 

*(ar+1)


주소에 1을 더하게 되면 그 다음 주소로 이동합니다. 배열 입장에서는 다음 원소로 이동하는 것입니다. 

*(ar+1) 의 의미를 해석해봅시다. ar은 ar[0]의 주소입니다. ar[0]의 주소에 1을 더하면 ar[1]의 주소가 됩니다. 따라서 *(ar+1) 은 ar[1] 주소에 입력된 값이라는 뜻입니다. 

 

아래 두 코드의 결과가 동일합니다. 

 

cout<<ar[1]<<endl;
cout<<*(ar+1)<<endl;
반응형

댓글