I have no idea what the difference between referencing *int var = 3 is, as opposed to int *var = 3.
Me neither. The first variant does not appear to be valid code. I don't see how you can put a * before the typename so I don't understand the question. Please rephrase the question and post an example that compiles.