Pointers and references: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl}}: some rewording)
(Add Nimrod)
Line 649: Line 649:
RETURN sum;
RETURN sum;
END Sum;</lang>
END Sum;</lang>

=={{header|Nimrod}}==
There are two types of pointers in Nimrod. Safe, garbage-collected references and unsafe pointers.

Create a safe reference:
<lang nimrod>type Foo = ref object
x, y: float

var f: Foo
new f</lang>

Accessing the reference:
<lang nimrod>echo f[]</lang>

When accessing values the dereference operator [] can be left out:
<lang nimrod>echo f[].x
f[].y = 12
echo f.y
f.x = 13.5</lang>

Create an (unsafe) pointer to an int variable:
<lang nimrod>var x = 3
var p = addr x</lang>

Access the integer variable through the pointer:
<lang nimrod>echo p[]
p[] = 42</lang>

Change the pointer to refer to another object:
<lang nimrod>var y = 12
p = addr y</lang>

Change the pointer to not point to any object:
<lang nimrod>p = nil</lang>


=={{header|OCaml}}==
=={{header|OCaml}}==