指针变量不仅可以为本机类型(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