Pointers and references: Difference between revisions

Add Nimrod
m (→‎{{header|Perl}}: some rewording)
(Add Nimrod)
Line 649:
RETURN sum;
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}}==
Anonymous user