📅  最后修改于: 2020-09-25 05:11:51             🧑  作者: Mango
不仅可以为本机类型(如int
, float
, double
等)创建指针变量,还可以为用户定义的类型(如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).inch
和d.inch
是完全相同的单元格。同样, (*ptr).feet
和d.feet
是完全相同的单元格。
使用指针访问成员 函数的语法很丑陋,并且还有一种更常见的替代符号-> 。
ptr->feet is same as (*ptr).feet
ptr->inch is same as (*ptr).inch