编辑这个页面须要登录或更高权限!

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