为什么按值传递指针和按地址传递指针最终都调用 hello()?
class MyObj
{
public:
void hello()
{
printf("hello");
}
};
void myfunc(void *ptr)
{
// I want the device
MyObj* ptr2 = static_cast<MyObj*>(ptr);
ptr2->hello();
}
int main()
{
MyObj thisobj;
void *pointer_to_device = &thisobj;
myfunc(pointer_to_device);
myfunc(&pointer_to_device);
return 0;
}
&pointer_to_device 在做什么?这很奇怪,不应该被允许,该函数不要求指向指针的指针
我正在使用 MSVC2012