The difference can be identified from the usage of the operator new. When it is used, you will be allocating memory from the heap and you need a pointer to store the address. As the memory from the stack, the variable has to be declared within a function without using operator new.