一个关于C++数组内存的问题

郎里个郎里个郎 发布于 2013/09/10 15:53
阅读 140
收藏 0

比如我有一个类叫类A  我可以构造数组如下:

A *a=new A[100];    类A中有函数get();

但是我访问的时候是使用点运算符  如a[1].get();      //为什么这里不是指针运算符了

但是我如下写为什么又是指针运算符

A *a;

a=new A();

a->get();


加载中
0
z
zjwzcnjsy

a[1]是取a数组中的第2个A对象,当然用点

而a就是指向A的一指针,所以用->

0
newzai
newzai

如果你要使用 ->你可以使用 (a+1)->get()也ok,这个是语言里面的语法糖。。数组运算符的内容。。

指针和数组的关系。。不明白baidu吧。。。

a+1得到的才是一个指针的地址, a[1]相当于 *(a+1) ,已经把指针转换为引用了。所以用的是成员运算符而不是指针运算符。  

郎里个郎里个郎
郎里个郎里个郎
我懂了 多谢
返回顶部
顶部