Question: Code:

```
int x = 2;
int* pointerone = &x;
int* pointertwo = pointerone;

```

So the address of `pointerone` is assigned to `pointertwo`, but is the copy constructor being called and the object that holds the address is copied into the address object of the other pointer, like all the default copy constructors on other types performing a shallow copy. If it is as I expect, how does the copy constructor of a pointer look like?

Answer: 
There are no constructors involved here. In fact this code is pure C code.

```
int x = 2;

// pointerone points to the memory address of x
int* pointerone = &x;

// pointertwo points to the same address than pointerone,
// therefore it points also to the memory address of x
int* pointertwo = pointerone;

```

That's all.

And even in C++, pointers don't have constructors, exactly as the `int` type doesn't have a constructor.
You could pretend, for symmetry, that the pointer's copy constructor is being invoked (and this would involve the copying of a single numerical "memory address").

In reality, pointers are of a built-in type and don't have constructors *per se*. The compiler has built-in logic that tells it what to make the program do.