我将使用什么数据类型来存储数组中其他元素的地址。
如同在,数组的元素0具有元素5的地址。依此类推..
答案 0 :(得分:1)
如果您正在执行64位并且您的c编译器将int
定义为64位,则可以将指针转换为long
(或long
。然后你只需要获得你想要指向的元素的地址。
int test[10];
test[0] = (int)&test[5];
答案 1 :(得分:1)
元素的地址与元素的数据类型不同。所以你的代码必须涉及一些类型转换。
用最少的演员来做:
T some_object;
void *array[20];
array[0] = &some_object;
array[5] = &array[0];
// ....
T *some_ptr = *(void **)array[5];