1

我将使用什么数据类型来存储数组中其他元素的地址。

如,数组的元素 0 具有元素 5 的地址。依此类推..

4

2 回答 2

1

元素的地址具有与元素不同的数据类型。所以你的代码将不得不涉及一些类型转换。

用最少的演员来做到这一点:

T some_object;

void *array[20];
array[0] = &some_object;
array[5] = &array[0];

// ....

T *some_ptr = *(void **)array[5];
于 2014-04-22T02:12:19.970 回答
1

指针可以转换为int(或者long如果您正在执行 64 位并且您的 c 编译器定义long为 64 位,则为 a)。然后你只需要获取你试图指向的元素的地址。

int test[10];
test[0] = (int)&test[5];
于 2014-04-22T02:09:12.717 回答