在C中推进数组指针

时间:2015-04-26 22:40:24

标签: c arrays pointers

我有一个C数组如下:

 unsigned long arr[10];

在我的机器上,unsigned long是8个字节。我有一种情况,我使用arr [0]写4个字节,然后需要找到数组中下一个字节的地址。

 void * ptr = arr[0] + (sizeof(unsigned long) / 2);

以上是否有效?

1 个答案:

答案 0 :(得分:6)

不,不会。您应该首先转换为char*,然后执行指针算法。

 void * ptr = ((char*) &arr[0]) + (sizeof(unsigned long) / 2);