ted fred adam mary eva fig data structure linked by pointers it must be emphasized that the use of pointers to implement recursive structures is merely technique the programmer need not be aware of their existence storage may be allocated automatically the first time new component is referenced howeverif the technique of using references or pointers is made explicitmore general data structures can be constructed than those definable by purely recursive data definiton in particularit is then possible to define potentially infinite or circular (graphstructures and to dictate that certain structures are shared it has therefore become common in advanced programming languages to make possible the explicit manipulation of references to data in additon to the data themeselves this implies that clear notational distinction must exist between data and references to data and that consequently data types must be introduced whose values are pointers (referencesto other data the notation we use for this purpose is the followingtype pointer to this type declaration expresses that values of type are pointers to data of type it is fundamentally important that the type of elements pointed to is evident from the declaration of we say that is bound to this binding distinguishes pointers in higher-level languages from addresses in assembly codesand it is most important facility to increase security in programming through redundancy of the underlying notation ppointer to ^ fig dynamic allocation of variable pvalues of pointer types are generated whenever data item is dynamically allocated we will adhere to the convention that such an occasion be explicitly mentioned at all times this is in contrast to the situation in which the first time that an item is mentioned it is automatically allocated for this purposewe introduce procedure new given pointer variable of type the statement new(peffectively allocates variable of type and assigns the pointer referencing this new variable to (see fig the pointer value itself can now be referred to as ( as the value of the pointer variable pin contrastthe variable which is referenced by is denoted by pthe referenced structures are typically records if the referenced record hasfor examplea field xthen it is denoted by px because it is clear that not the