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 – 结构引用和解引用运算符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)