English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 기사에서는 관련 예제를 찾아서 구조체 포인터를 사용하여 데이터에 접근하는 방법을 배울 수 있습니다.
포인터변수는 기본 타입(int, float, double 등)뿐만 아니라 사용자 정의 타입(예를 들어구조체)를 생성합니다.
포인터가 무엇인지 모르시면, 다음을 방문하세요C ++포인터。
구조체 포인터를 생성하는 방법은 다음과 같습니다:
#include <iostream> using namespace std; struct temp { int i; float f; }; int main() { temp *ptr; return 0; }
이 프로그램은 구조체 타입 temp의 포인터 ptr를 생성합니다.
#include <iostream> using namespace std; struct Distance { int feet; float inch; }; int main() { Distance *ptr, d; ptr = &d; cout << "피트를 입력하세요: "; cin >> (*ptr).feet; cout << "인치를 입력하세요: "; cin >> (*ptr).inch; cout << "표시 정보" << endl; cout << "거리 = " << (*ptr).feet << " 피트 " << (*ptr).inch << " 인치"; return 0; }
출력 결과
피트를 입력하세요: 4 인치를 입력하세요: 3.5 표시 정보 거리 = 4 피트 3.5 인치
이 프로그램은 구조체 타입 Distance를 정의하고 있습니다. 포인터 변수를 가지고 있습니다.*ptr와 일반 변수 d.
변수 d의 주소는 포인터 변수에 저장되어 있으며, 즉 ptr가 변수 d를 가리키고, 그런 다음 포인터를 사용하여 변수 d의 멤버 함수에 접근합니다。
주의:포인터 ptr가 이 프로그램에서 변수 d를 가리키기 때문에(* ptr).inch와 d.inch는 완전히 동일한 단위입니다。 同样,(* ptr).feet와 d.feet는 완전히 동일한 단위입니다. 同样,(
포인터를 사용하여 멤버 함수에 접근하는 문법은 예쁘지 않지만, 더 일반적인 대체 기호가 있습니다.->。
ptr->feet 동의 (*ptr).feet ptr->inch 동의 (*ptr).inch