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

c – 结构引用和解引用运算符,第1张

概述假设我定义了这个结构: 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] 假设我定义了这个结构:
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 – 结构引用和解引用运算符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1238105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存