28 lines
508 B
Plaintext
28 lines
508 B
Plaintext
|
|
fn main() i32 {
|
|
/* address-of and postfix deref */
|
|
var x := 42;
|
|
var p := &x;
|
|
var v := p.*;
|
|
if v != 42 { ret 1; }
|
|
|
|
/* null pointer */
|
|
var np: *i32 = null;
|
|
if np != null { ret 2; }
|
|
if np == null {} else { ret 3; }
|
|
|
|
/* pointer to struct — auto-deref on .field */
|
|
type Point = struct {
|
|
a: i32,
|
|
b: i32,
|
|
};
|
|
var pt: Point;
|
|
pt.a = 10;
|
|
pt.b = 20;
|
|
var pp := &pt;
|
|
if pp.a != 10 { ret 4; }
|
|
if pp.b != 20 { ret 5; }
|
|
|
|
ret 0;
|
|
}
|