Reference vs. Pointer
Wednesday, March 18th, 2009In Software Engineering Project course we need to learn some C++ to develop the project. A question that some programmers have when passing from Java to C++ (like me) is "Which are the differences between pointers and references?". You can find a lot of answers around developers forum, but I summarized them in the following table. Glad if you found it useful!
| Reference | Pointer |
|---|---|
| is an object which IS AN ALIAS for another object | is an object that CONTAINS THE ADRRESS IN MEMORY of another object |
| the preferred way of undirectly access objects | you should use it just if you really need it, as it lets you to work in a lower level than a reference does |
| keeps your code clear | the code is less clear but still understandable |
| it must be initialized when created | you don't have to initialize it when declared |
| it references to the one object and only that one, therefore you can not modify the address referenced | because it contains an address, it can point to many different objects during lifetime. The address can be manipulated |
| when used, the address is dereferenced without using any particular operator | the address must be dereferenced using the * operator |