大一C++最简单的数组题,能不能讲一下过程

double a[]={2,4,6,8,10};
则 &a[3]-&a[0]的值为多少
(int)&a[3]-(int)&a[0]的值为多少

前者和后者的差别是什么?

写个程序算一下就行了

#include <iostream>
using namespace std;

double a[]={2,4,6,8,10};
int main()
{
    cout << &a[3]-&a[0] << endl << (int)&a[3]-(int)&a[0];
} 

得到的值分别是3和24.
因为第一个值是指针相减,指针相减时要除以数据类型大小,而一个double占8个字节,所以是3.