高手帮忙,(void*)&st1
在一个函数的参数里,有一个参数是(void*)&st1, st1 是一个结构体指针。
在另一个函数的参数里,有一个参数是(void*)st2,st2是一个结构体名。
如:
struct{
...
}st;
st *st1,st2;
请问两个参数有什么区别吗?具体解释一下,谢谢了!
[解决办法]
(void*)&st1 代表的是一个VOID的指针指向该结构体
(void*)st2 将一个结构体指针强制转化为一个VOID型
[解决办法]
两个参数的类型都是 vooid *
但是他们的意义不同,
st1 本身是指针,所以 (void*)&st1 是将 st1取地址后转换为 void *,是从二级指针来的,
在参数所在函数中使用的时候需要进行指针解引用操作;
st2 没有取地址,本身也不是指针,可以直接访问