c – 结构引用和解引用运算符

前端之家收集整理的这篇文章主要介绍了c – 结构引用和解引用运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我定义了这个结构:
struct Point {
   double x,y;
};

现在,假设我创建了一个这种类型的动态数组:

Point *P = new Point[10];

为什么我使用P [k] .x和P [k] .y代替P [k] – > x和P [k] – > y来访问第k个点的元素?

我以为你必须使用后者作为指针.

解决方法

实际上,您使用p [index] .x和p [index] .y来访问数组内部结构的元素,因为在这种情况下,您使用指针来引用动态分配的数组.

ptr->成员运算符只是(* ptr).member的简写.为了使用它,你需要在左侧有一个指针:

Point *p = new Point;
p->x = 12.34;
p->y = 56.78;

请注意,即使对于动态分配的数组,– >操作符会工作:

Point *p = new Point[10];
p->x = 12.34;
p->y = 56.78;

这相当于

p[0].x = 12.34;
p[0].y = 56.78;

因为指向数组的指针等于指向其第一个元素的指针.

猜你在找的C&C++相关文章