整型数组元素地址相减为什么不是等于字节数?

来源:百度知道 编辑:UC知道 时间:2024/06/02 09:54:14
#include <stdio.h>
main()
{
int a[]={0,8,2,3,4};
int d1;
int d2;
int d3;

d1=(int)(&a[1]-&a[0]);
d2=(int)(&a[2]-&a[0]);
d3=(int)(&a[3]-&a[0]);

printf("d1=%d\n",d1);
printf("d2=%d\n",d2);
printf("d3=%d\n",d3);
}
结果是1、2、3.我本来以为是4、8、12的。那现在看来是像元素个数相减。但该怎么解释呢?

int t0,t1,t2,t3;
t0 = &a[0];t1 = &a[1];t2 = &a[2];t3 = &a[3];
d1 = t1 - t0;
d2 = t2 - t0;
d3 = t3 - t0;
printf("d1=%d\n",d1);
printf("d2=%d\n",d2);
printf("d3=%d\n",d3);

这样跟你解释就明白了。
&a[i] 就相对于 a+i (要明白这是一个指针),你再带进去计算就是喽!

d1=(int)(a[1]-a[0]);
d2=(int)(a[2]-a[0]);
d3=(int)(a[3]-a[0]);

改一下

有一个含有10个元素的整型数组,编程将其元素按逆序存放 编程题:求一个含有10个整型元素的数组的平均值? 写出一函数,求出有几个元素的整型数组的最大值及其下标? VC编程求整型数组a[i]中符合要求的元素个数 请用快速排序法对一个整型数组进行排序(数组元素为1到10) 编写一个函数,分别求出一维整型数组a[n]中所有奇数元素和所有偶数元素 将整型数组中所有小于0的元素放到大于0的元素前面(采用最优算法) C++ 要定义一个数组,这个数组里又有整型元素,又有字符元素,该用什么定义啊? 编写一个函数findmax( ),求数组中最大元素及其下标。调用该函数求整型数组a中的最大元素及其下标。 已知一个整型数组a[5],其各元素值为4,6,8,10,12。使用指针求该数组元素之积