From cf0920de31e9b5f3c5ba6de19a1b4c8d0c58b907 Mon Sep 17 00:00:00 2001 From: Dave Gauer Date: Mon, 8 Feb 2021 20:35:28 -0500 Subject: Added Ex. 38-43 for pointers, updated README Added topics beyond the language basics from ziglearn.org to the README. That's a lot of exercises. I'd like to keep it under 100, though! --- 42_pointers4.zig | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 42_pointers4.zig (limited to '42_pointers4.zig') diff --git a/42_pointers4.zig b/42_pointers4.zig new file mode 100644 index 0000000..e6b8964 --- /dev/null +++ b/42_pointers4.zig @@ -0,0 +1,33 @@ +// +// Now let's use pointers to do something we haven't been +// able to do before: pass a value by reference to a function! +// +const std = @import("std"); + +pub fn main() void { + var num: u8 = 1; + var more_nums = [_]u8{ 1, 1, 1, 1 }; + + // Let's pass a reference to num to our function and print it: + makeFive(&num); + std.debug.print("num: {}, ", .{num}); + + + // Now something interesting. Let's pass a reference to a + // specific array value: + makeFive(&more_nums[2]); + + // And print the array: + std.debug.print("more_nums: ", .{}); + for (more_nums) |n| { + std.debug.print("{} ", .{n}); + } + + std.debug.print("\n", .{}); +} + +// This function should take a reference to a u8 value and set it +// to 5. +fn makeFive(x: *u8) void { + ??? = 5; // fix me! +} -- cgit v1.2.3-70-g09d2