Challenge 3 — Solution Task: Write a function double(n *int) that takes a pointer to an int and doubles the value it points to (using dereferencing, not a return value). Declare a variable, pass its address to double, and print the variable afterward to confirm it changed. package main import "fmt" func double(n *int) { *n = *n * 2 } func main() { number := 7 double(&number) fmt.Println(number) } Expected output: 14 Notes: - &number passes the ADDRESS of number into double, not a copy of its value — this is what makes it possible for double to change the real variable rather than a throwaway duplicate. - *n = *n * 2 reads as: dereference n to get the current value, double it, then dereference n again on the left side to store the new value back at that same address. - This is the plain-function equivalent of what a pointer receiver does for a struct method (this chapter's main example) — the underlying mechanism (& and *) is identical either way.