Skip to content

Latest commit

 

History

History
82 lines (57 loc) · 1.94 KB

32.md

File metadata and controls

82 lines (57 loc) · 1.94 KB

C++ 结构指针

原文: https://www.programiz.com/cpp-programming/structure-pointer

在本文中,您将找到相关的示例,这些示例将帮助您使用指针来访问结构中的数据。

不仅可以为本地类型(intfloatdouble等)创建指针变量,还可以为用户定义的类型(例如结构)创建变量 ]。

如果您不知道什么是指针,请访问 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 << "Enter feet: ";
    cin >> (*ptr).feet;
    cout << "Enter inch: ";
    cin >> (*ptr).inch;

    cout << "Displaying information." << endl;
    cout << "Distance = " << (*ptr).feet << " feet " << (*ptr).inch << " inches";

    return 0;
}

输出

Enter feet: 4
Enter inch: 3.5
Displaying information.
Distance = 4 feet 3.5 inches

在该程序中,定义了类型结构为Distance的指针变量ptr和普通变量d

变量d的地址存储到指针变量,即ptr指向变量d。 然后,使用指针访问变量d的成员函数。

注意:由于指针ptr指向此程序中的变量d,因此(*ptr).inchd.inch是完全相同的单元格。 同样,(*ptr).feetd.feet是完全相同的单元格。

使用指针访问成员函数的语法很丑陋,还有更常见的替代符号->

ptr->feet is same as (*ptr).feet
ptr->inch is same as (*ptr).inch