The Fundamentals of Pointers
Written by Mike James   
Sunday, 30 November 2025
Article Index
The Fundamentals of Pointers
Pointers in C
A Pointer By Any Other Name

 

Modern languages

More modern languages such as C++ or C#  have stopped this untidy use of pointers to pass parameters by reference but pointers are still sometimes useful.

In both C and Pascal pointers within records (C calls them structures) allow you to create very advanced data structures. In C++ this has been extended to include pointers to objects and pointers within objects.

Although C++ is a very advanced object oriented language it cannot entirely break free from its lower level past. For example, the only way to implement a polymorphic method is to use pointers - which is a strange mix of old and very new.

Languages such as C#, Java, Python, Ruby and even JavaScript have done what they can to completely replace pointers by "references" which can be thought of as strongly typed pointers to data structures/objects that the system automatically constructs for you. In other words you generally don't have to allocate memory for a reference to point at. In fact you can start to forget that references are addresses to memory locations and start to think of them as pointers to objects. 

However, references, generally don't permit you to use pointer arithmetic and at least one high level language, C#, has added a pointer type simply because sometimes pointer arithmetic is just the simplest way of getting the job done.

For more on this see What's the matter with pointers.

You shouldn't be too convinced by the C# inclusion of pointers. As languages such as Java, JavaScript and so on have proved you really don't need low level pointers and pointer arithmetic as long as the language supports sufficiently sophisticated data structures. 

  • Mike James, Chief Editor of I Programmer, is author of several programming books in the I Programmer Library. He discusses pointers in Deep C Dives: Adventures in C, a book that looks in depth at specific aspects of C that make it a unique language and in Deep C#: Dive Into Modern C#, which takes a similar approach to C#.

 

operators

Related Articles

What's The Matter With Pointers? 

C Pointer Declaration And Dereferencing 

Deep C# - Value And Reference 

Power of Operators       

Assemblers and assembly language        

Inside the Computer - Addressing

Understanding and Using C Pointers 

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

pico book

 

Comments




or email your comment to: comments@i-programmer.info

 

<ASIN:B09FTLPTP9>

<ASIN:B0D6LZZQ8R>

 



Last Updated ( Saturday, 06 December 2025 )