PLDB
Languages Features Calendar About Lists Add Language
GitHub icon

Pointers

Pointers

Pointers are a language feature.

A pointer is a programming language object that stores the memory address of another value located in computer memory.

Languages without Pointers include Java, JavaScript, Python

Languages with Pointers include C, C++, Go, C#, Objective-C, COBOL, Ada, D, Eiffel, Modula-2, Oberon, PL/I, FreeBASIC, Felix, BlitzMax, Fortran 90

Example from C:

int *ptr;

Example from C++:

int *p;

Example from Go:

package main import "fmt" func main() { i, j := 42, 2701 p := &i // point to i fmt.Println(*p) // read i through the pointer *p = 21 // set i through the pointer fmt.Println(i) // see the new value of i p = &j // point to j *p = *p / 37 // divide j through the pointer fmt.Println(j) // see the new value of j }

Example from C#:

// Pointers supported only under certain conditions. // Get 16 bytes of memory from the process's unmanaged memory IntPtr pointer = System.Runtime.InteropServices.Marshal.AllocHGlobal(16);

Example from Felix:

var x = 1; &x <- 2;

Example from Fortran 90:

type real_list_t real :: sample_data(100) type (real_list_t), pointer :: next => null () end type type (real_list_t), target :: my_real_list type (real_list_t), pointer :: real_list_temp real_list_temp => my_real_list do read (1,iostat=ioerr) real_list_temp%sample_data if (ioerr /= 0) exit allocate (real_list_temp%next) real_list_temp => real_list_temp%next end do

Article source

PLDB - Build the next great programming language. v5.0.0 - Acknowledgements · Email · GitHub