Что означает * и & применительно к именам переменных?

В C ++, в чем разница между:

 void func(MyType&); // declaration

 //...
 MyType * ptr;

 func(*ptr); // compiler doesnt give error

 func(ptr); // compiler gives error i thought & represents memory address so 
            // this statement should correct as ptr is only a pointer
            // or address of some real var.

Ответы на вопрос(2)

Ваш ответ на вопрос