В си не так. Например:

Код:
// Оператор new возвращает указатель на созданный объект
SomeClass * firstVar = new SomeClass();
// В данном случае для инициализации secondVar вызывается
// конструктор копирования. В результате получаем копию объекта.
SomeClass secondVar = *firstVar;
// А вот если написать так, то мы скопируем только указатель на объект,
// но не сам объект:
SomeClass * thirdVar = firstVar;
// Если бы у нас был какой-нибудь литерал для создания объектов,
// скажем как у класса string, тогда дело выглядит так.
string firstString = "Hello, World";
// И в этом случае опять же вызывается конструктор копирования.
string secondString = firstString;