1234567891011121314151617181920212223242526272829 |
- //
- // It's important to note that variable pointers and constant pointers
- // are different types.
- //
- // Given:
- //
- // var foo: u8 = 5;
- // const bar: u8 = 5;
- //
- // Then:
- //
- // &foo is of type "*u8"
- // &bar is of type "*const u8"
- //
- // You can always make a const pointer to a mutable value (var), but
- // you cannot make a var pointer to an immutable value (const).
- // This sounds like a logic puzzle, but it just means that once data
- // is declared immutable, you can't coerce it to a mutable type.
- // Think of mutable data as being volatile or even dangerous. Zig
- // always lets you be "more safe" and never "less safe."
- //
- const std = @import("std");
- pub fn main() void {
- const a: u8 = 12;
- const b: *u8 = &a; // fix this!
- std.debug.print("a: {}, b: {}\n", .{ a, b.* });
- }
|