add: quiz and exercises to pointers

This commit is contained in:
Inanc Gumus
2019-06-30 17:04:27 +03:00
parent 1fb9f43a67
commit ac856db508
16 changed files with 618 additions and 0 deletions

View File

@ -0,0 +1,45 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
// ---------------------------------------------------------
// EXERCISE: Swap
//
// Using funcs, swap values through pointers, and swap
// the addresses of the pointers.
//
//
// 1- Swap the values through a func
//
// a- Declare two float variables
//
// b- Declare a func that can swap the variables' values
// through their memory addresses
//
// c- Pass the variables' addresses to the func
//
// d- Print the variables
//
//
// 2- Swap the addresses of the float pointers through a func
//
// a- Declare two float pointer variables and,
// assign them the addresses of float variables
//
// b- Declare a func that can swap the addresses
// of two float pointers
//
// c- Pass the pointer variables to the func
//
// d- Print the addresses, and values that are
// pointed by the pointer variables
//
// ---------------------------------------------------------
package main
func main() {
}

View File

@ -0,0 +1,29 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
package main
import "fmt"
func main() {
a, b := 3.14, 6.28
swap(&a, &b)
fmt.Printf("a : %g — b : %g\n", a, b)
pa, pb := &a, &b
pa, pb = swapAddr(pa, pb)
fmt.Printf("pa: %p — pb: %p\n", pa, pb)
fmt.Printf("pa: %g — pb: %g\n", *pa, *pb)
}
func swap(a, b *float64) {
*a, *b = *b, *a
}
func swapAddr(a, b *float64) (*float64, *float64) {
return b, a
}