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!
This commit is contained in:
parent
adf5ddb27d
commit
cf0920de31
8 changed files with 252 additions and 12 deletions
36
39_pointers.zig
Normal file
36
39_pointers.zig
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
//
|
||||
// Check this out:
|
||||
//
|
||||
// var foo: u8 = 5; // foo is 5
|
||||
// var bar: *u8 = &foo; // bar is a pointer
|
||||
//
|
||||
// What is a pointer? It's a reference to a value. In this example
|
||||
// bar is a reference to the memory space that current contains the
|
||||
// value 5.
|
||||
//
|
||||
// A cheatsheet given the above declarations:
|
||||
//
|
||||
// u8 the type of a u8 value
|
||||
// foo the value 5
|
||||
// *u8 the type of a pointer to a u8 value
|
||||
// &foo a reference to foo
|
||||
// bar a pointer to the value at foo
|
||||
// bar.* the value 5 (the dereferenced value "at" bar)
|
||||
//
|
||||
// We'll see why pointers are useful in a moment. For now, see if you
|
||||
// can make this example work!
|
||||
//
|
||||
const std = @import("std");
|
||||
|
||||
pub fn main() void {
|
||||
var num1: u8 = 5;
|
||||
var num1_pointer: *u8 = &num1;
|
||||
|
||||
var num2: u8 = undefined;
|
||||
|
||||
// Please make num2 equal 5 using num1_pointer!
|
||||
// (See the "cheatsheet" above for ideas.)
|
||||
num2 = ???;
|
||||
|
||||
std.debug.print("num1: {}, num2: {}\n", .{num1, num2});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue