原文: https://www.programiz.com/cpp-programming/structure-pointer
不仅可以为本地类型(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 << "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).inch
和d.inch
是完全相同的单元格。 同样,(*ptr).feet
和d.feet
是完全相同的单元格。
使用指针访问成员函数的语法很丑陋,还有更常见的替代符号->
。
ptr->feet is same as (*ptr).feet
ptr->inch is same as (*ptr).inch