分类: C/C++
2010-01-08 13:43:45
求最后结果
|
&a、a都是数组a的起始地址,但是(int *)(&a + 1)表示的是数组a的地址加上了4*5,即&a表示的是整个数组所占有的地址,a则表示a数组内一个元素占用的地址相当于&a[0],(int)a + 1即是将地址a转换为整形变量了,所以
ptr1[-1] = *((int *)(ptr1-1)) = a[4]
*((int *)(a + 1)) = a[1]
*((int *)(&a[0] + 1)) = a[1]
*((int *)((int)a + i))的值是&a[i/4]内4-i-1个字节的组合,该值与机器大端小端有关。
纯属个人理解,有误请指正。