C++指针数组问题!急!谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:15:06
一个类里设置了一个坐标指针变量 COORD *m_Monsters;
当程序调用m_Monsters,比如if(m_Monsters[Monster].X!=0),Monster是一个int变量,我想问下,在申明m_Monsters时并没有把他申明为数组类型啊,为什么程序调用时把他用作数组呢?

在C/C++里,数组和指针事实上一致的呀
比如这段代码:
#include <iostream>
using namespace std;
void main()
{
int i;
char *a="haha!";
char b[10]="hoho!";
for(i=0;i<5;i++)
cout<<a[i];
for(i=0;i<5;i++)
cout<<*(b+i);
}
输出结果为"haha!hoho!"
很明显表明指针和数组是等效的

抛开其它现象,单说指针和数组,一个数组名可以当成一个指针,比如a[4],其实也相当于*(a+4),这样,那一个指针想往后移几位呢就也可以写成m_Monsters[Monster],不过是按里面的数据基类型移的,这点要注意。