English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서 배열과 포인터의 관계를 이해하고 프로그램에서 효과적으로 사용할 수 있습니다.
포인터저장 주소를 저장하는 변수입니다. 포인터는 단일 변수의 주소를 저장할 뿐만 아니라배열단위의 주소.
다음 예제를 보세요:
int* ptr; int a[5] ptr = &a[2] // &a[2]는 a[5]의 세 번째 요소의 주소.
포인터가 배열의 네 번째 요소를 가리키도록 설정하면, 즉 위의 경우에서 네 번째 배열 요소의 저장 주소.
ptr가 예제의 세 번째 요소를 가리키고 있기 때문에 ptr + 1포인터는 네 번째 요소를 가리키게 됩니다。
ptr를 다음 바이트의 주소로 생각할 수 있습니다。 +1ptr의 다음 바이트의 주소를 제공했습니다.但这是不正确的。
이는 ptr가 int 포인터이고, int의 크기는 운영 체제에 따라 고정되기 때문입니다.64비트 운영 체제에서 int 타입의 크기는4바이트). 따라서, ptr와 ptr +1주소는4바이트.
ptr가 char 포인터인 경우, ptr와 ptr + 1주소는1바이트, 문자의 크기는1바이트.
C ++프로그램은 배열과 포인터를 사용하여 배열 요소의 주소를 표시합니다
#include <iostream> using namespace std; int main() { 5] float *ptr; cout << "배열을 사용하여 주소를 표시합니다: " << endl; for (int i = 0; i < 5; ++i) { cout << "&arr[" << i << "] = " << &arr[i] << endl; } // ptr = &arr[0] ptr = arr; cout << "\n포인터를 사용하여 주소를 표시합니다: " << endl; for (int i = 0; i < 5; ++i) { cout << "ptr + " << i << " = " << ptr + i << endl; } return 0; }
출력 결과
배열을 사용하여 주소를 표시합니다: &arr[0] = 0015F718 &arr[1] = 0015F71C &arr[2] = 0015F720 &arr[3] = 0015F724 &arr[4] = 0015F728 포인터를 사용하여 주소를 표시합니다: ptr + 0 = 0015F718 ptr + 1 = 0015F71C ptr + 2 = 0015F720 ptr + 3 = 0015F724 ptr + 4 = 0015F728
위의 프로그램에서는 다른 포인터 ptr를 사용하여 배열 요소 arr의 주소를 표시합니다.
하지만, 배열 요소는 같은 배열 이름 arr를 사용하여 포인터 표기법으로 접근할 수 있습니다. 예를 들어:
int arr[3] &arr[0]와 같습니다 &arr[1]와 같습니다 + 1 &arr[2]와 같습니다 + 2
C ++프로그램은 포인터 기호를 사용하여 배열 요소의 주소를 표시합니다.
#include <iostream> using namespace std; int main() { 5] cout << "포인터 기호를 사용하여 주소를 표시합니다: " << endl; for (int i = 0; i < 5; ++i) { cout << arr + i << endl; } return 0; }
출력 결과
포인터 기호를 사용하여 주소를 표시합니다: 045FB90 045FB94 045FB98 045FB9C 045FBA0
포인터 ptr는 주소를 저장하며, 표현식*ptr를 사용하여 주소에 저장된 값을 확인할 수 있습니다.
와 같이 사용할 수 있습니다*(ptr + 1)를 저장한 ptr + 1의 값을 확인하세요.
다음 코드를 고려해 주세요:
int ptr[5] = {3, 4, 5, 5, 3};
&ptr[0]와 ptr와 같습니다*ptr와 ptr[0]
&ptr[1]와 ptr + 1،*(ptr + 1)와 ptr[1]
&ptr[2]와 ptr + 2،*(ptr + 2)와 ptr[2]
&ptr[i]와 ptr + i ,*(ptr + i) ptr[i]와 같습니다
C ++프로그램은 포인터 기호를 사용하여 입력된 데이터를 삽입하고 표시하는 데 사용됩니다.
#include <iostream> using namespace std; int main() { 5] // 포인터 기호를 사용하여 데이터를 삽입 cout << "입력5개의 숫자: "; for (int i = 0; i < 5; ++i) { cin >> *(arr + i) ; } // 포인터 기호를 사용하여 데이터를 표시 cout << "데이터를 표시: " << endl; for (int i = 0; i < 5; ++i) { cout << *(arr + i) << endl ; } return 0; }
출력 결과
입력5개의 숫자: 125 145 180 225 335 데이터를 표시: 125 145 180 225 335