English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C ++ 구조체 포인터

이 기사에서는 관련 예제를 찾아서 구조체 포인터를 사용하여 데이터에 접근하는 방법을 배울 수 있습니다.

포인터변수는 기본 타입(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