Pointers and references: Difference between revisions

Content added Content deleted
(Add Ecstasy example)
(PascalABC.NET)
 
Line 1,675: Line 1,675:
foo(bar);
foo(bar);
end.</syntaxhighlight>
end.</syntaxhighlight>

=={{header|PascalABC.NET}}==
<syntaxhighlight lang="delphi">
type MyClass = class
public
x: integer := 555;
end;

begin
var pi: ^integer;
New(pi);
pi^ := 1023;
var pb: ^byte;
//pb := pi; // compiler error
var p: pointer;
p := pi;
pb := p;
Print(pb^); // byte representation of integer
loop 3 do
begin
pb := pointer(integer(pb)+1); // analog of pb++
Print(pb^);
end;
Println;
var obj := new MyClass; // obj is a reference to object
// All regferences in .NET are under control of garbage collection
Println(obj);
var obj1 := obj; // another reference to the same object
obj1.x := 666;
Println(obj);
obj := nil; // zero reference
end.
</syntaxhighlight>
{{out}}
<pre>
255 3 0 0
(555)
(666)
</pre>


=={{header|Perl}}==
=={{header|Perl}}==