Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

포인터를 사용하여 배열 요소에 액세스하는 C++ 프로그램

<시간/>

포인터는 메모리 위치 또는 변수 주소를 저장합니다. 즉, 포인터는 메모리 위치를 참조하고 해당 메모리 위치에 저장된 값을 얻는 것을 포인터 역참조라고 합니다.

포인터를 사용하여 배열의 단일 요소에 액세스하는 프로그램은 다음과 같이 제공됩니다. -

예시

#include <iostream>
using namespace std;
int main() {
   int arr[5] = {5, 2, 9, 4, 1};
   int *ptr = &arr[2];
   cout<<"The value in the second index of the array is: "<< *ptr;
   return 0;
}

출력

The value in the second index of the array is: 9

위의 프로그램에서 포인터 ptr은 배열의 세 번째 인덱스, 즉 9에 요소의 주소를 저장합니다.

이것은 다음 코드 스니펫에 나와 있습니다.

int *ptr = &arr[2];

포인터는 역참조되고 값 9는 간접 참조(*) 연산자를 사용하여 표시됩니다. 이것은 다음과 같이 증명됩니다.

cout<<"The value in the second index of the array is: "<< *ptr;

배열의 모든 요소에 액세스하기 위해 단일 포인터를 사용하는 또 다른 프로그램은 다음과 같습니다.

예시

#include <iostream>
using namespace std;
int main() {
   int arr[5] = {1, 2, 3, 4, 5};
   int *ptr = &arr[0];
   cout<<"The values in the array are: ";
   for(int i = 0; i < 5; i++) {
      cout<< *ptr <<" ";
      ptr++;
   }
   return 0;
}

출력

The values in the array are: 1 2 3 4 5

위의 프로그램에서 포인터 ptr은 배열의 첫 번째 요소의 주소를 저장합니다. 이것은 다음과 같이 수행됩니다.

int *ptr = &arr[0];

그런 다음 for 루프를 사용하여 포인터를 역참조하고 배열의 모든 요소를 ​​인쇄합니다. 포인터는 루프의 각 반복에서 증가합니다. 즉, 각 루프 반복에서 포인터는 배열의 다음 요소를 가리킵니다. 그런 다음 해당 배열 값이 인쇄됩니다. 이는 다음 코드 스니펫에서 확인할 수 있습니다.

for(int i = 0; i < 5; i++) {
   cout<< *ptr <<" ";
   ptr++;
}