📜  C++结构指针

📅  最后修改于: 2020-09-25 05:11:51             🧑  作者: Mango

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

不仅可以为本机类型(如intfloatdouble等)创建指针变量,还可以为用户定义的类型(如structure)创建指针变量。

如果您不知道什么是指针,请访问C++指针。

这是如何为结构创建指针:

#include 
using namespace std;

struct temp {
    int i;
    float f;
};

int main() {
    temp *ptr;
    return 0;
}

该程序创建类型为temp的指针ptr

示例:结构指针

#include 
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

在该程序中,定义了指针变量ptr和类型为Distance结构的普通变量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