高分,关于C++!!!

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:03:16
请看下面的代码:
#include<iostream.h>

void main()
{
int iArray[3]={0,2,4};
int *iPtr;

iPtr=&iArray[0];

for(int i=0;i<3;i++)
{
cout<<iPtr<<" "<<*iPtr<<endl;
iPtr++;
}
}

运行后的结果为:
0x0012FF74 0
0X0012FF78 2
0X0012FF7C 4
我不理解的是指针和数组既然都是int(整型),那iPtr++指向下一个整型数时,iPtr的地址值增加的应该为2,怎么会是4呢?
如果把int改为double的话,刚好地址值增加为8,这又对了。
急求解答!!!

地址值增值为4是正确的啊

因为在32位编译系统上,int型的size为4个字节,
如果你是16位编译系统(例如TC),那么型的size为2个字节,地址值增值才为2

我不懂编程,教我行吗