疑惑!!!!!
int a[3]={1,2,3};
printf( "%d ",&a[2]-&a[1]);
printf( "\n%d ",&a[2]);
printf( "\n%d ",&a[1]);
这里要问的是,&a[2]-&a[1]怎么是等于1,
而
printf( "\n%d ",&a[2]);
printf( "\n%d ",&a[1]);
打印结果却差4个字节!
这里不是很理解,请大虾解释一下,感谢!
[解决办法]
1、&a[1]+1表示元素a[1]后面第1个元素的地址,&a[1]+n表示元素a[1]后面第n个元素的地址。&a[i]-&a[j]表示这两个地址之间相隔的元素个数,因此&a[2]-&a[1]=1
2、分别打印a[1]和a[2]的地址,发现相差4个字节,是因为给每个元素分配4个字节的空间