今天的数据结构老师给了这样几行代码
typedef void* ArrayListValue;
struct _ArrayList
{
ArrayListValue* data;
unsigned int length;
unsigned int _alloced;
};
int Add_ArrayList(ArrayList *L, unsigned int index, ArrayListValue data)
{
}
我有以下几个问题:
1、void* 是不是指的是可以指向任何数据类型的指针?
2、如果1的回答是“是”,那么ArrayListValue* data是不是等价于void** data,即data指向一个指向任何数据类型的指针的指针?我认为老师的目的是建一个数组,数元素可以为任何类型,但是现在是这个意思吗?为什么不是ArrayListValue data,他的意思不是void* data,指的才是建一个数组,元素可以为任何类型的意思吧。
3、同样的,在Add_ArrayList函数中,参数是ArrayListValue data,意思不是void* data吗?难道这里的data是一个指针吗?但是函数的意思是data是一个插入数组的数据啊,不应该是指针的。