The difference between a reference and a pointer in Computer Science seems to be the ability to manipulate the memory address that the pointer points to. In Java, the misleading statement that "pointers do not exist in Java" is often confusing. It would be clearer to C programmers if that statement were changed to "Pointer arithmetic does not exist in Java."
It is possible in Assembly Code to move a pointer by one byte even though the thing it is pointing to is actually 4 bytes long. This is direct manipulation of the address the pointer contains. With pointer arithmetic in C, it is possible to "move a pointer" by the size of the thing it points to. For example, if it points to an integer and integers are stored in 4 bytes of memory space, then one could advance a pointer by 4 bytes via pointer arithmetic. This changes the address contained in the pointer. In Java, neither of these is directly possible. See iterators in Java for more information.
Search Encyclopedia
|
Featured Article
|