Pointers _ golang

Go support pointers, allowing you to pass references to values and records within your program

package main

import (
    "fmt"
)

func zeroval(ival int) {
    ival = 0
}

func zeroptr(iptr *int) {
    *iptr = 0
}

func main() {

    i := 1
    fmt.Println("initial : ", i)

    zeroval(i)
    fmt.Println("zeroval : ", i)

    zeroptr(&i)
    fmt.Println("zeroptr : ", i)

    fmt.Println("pointer : ", &i)
}
initial :  1
zeroval :  1
zeroptr :  0
pointer :  0x208178170

总结 :

  1 : 传指针的话能直接改变主函数里面的值

时间: 2024-07-30 18:20:29

Pointers _ golang的相关文章

errors _ golang

In Go it's idiomatic to communicate errors via an explicit, separate return value. this constrasts errors via an explicit, separate return value. This constrasts with the exceptions used in languages like Java and Ruby and the overloaded single resul

multiple return values _ golang

Go has built-in support for multiple return values. This feature is used often in idiomatic Go, for example to return both result and error values from a function package main import ( "fmt" ) func vals() (int, int) { return 3, 7 } func main() {

structs _ golang

Go's structs are typed collections of fields. They're useful for grouping data together to form records package main import ( "fmt" ) type person struct { name string age int } func main() { fmt.Println(person{"Bob", 20}) fmt.Println(p

variadic function _ golang

Variadic functions can be called with any number of trailing arguments. For example, fmt.Println is a common variadic function package main import ( "fmt" ) func sum(nums ...int) { fmt.Println(nums, " ") total := 0 for _, num := range

if else _ golang

if else 在 golang package main import ( "fmt" ) func main() { if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } if 8%4 == 0 { fmt.Println("8 is divisible by 4") } if num := 9; num < 0 { fmt

for _ golang

for 是 golang 唯一的 looping 结构, package main import ( "fmt" ) func main() { i := 1 for i <= 3 { fmt.Println(i) i += 1 } for j := 7; j <= 9; j++ { fmt.Println(j) } for { fmt.Println("loop") break } } 1 2 3 7 8 9 loop 总结 : 对于这个, 额, 我觉

constants _ golang

golang 中支持 长量 const or static package main import ( "fmt" "math" ) const s string = "constant" const a = 3000 func main() { const s = 3000 fmt.Println(s) const n = (3e8 / s) fmt.Println(n) fmt.Println(int64(n)) fmt.Println(ma

slices _ golang

Slices are a key data type in Go, giving a more powerful interface to sequences than arrays package main import ( "fmt" ) func main() { s := make([]string, 3) fmt.Println("emp:", s) s[0] = "a" s[1] = "b" s[2] = &quo

variables _ golang

在 golang 中, 变量是通过编译器声明和使用的,并且编译器会进行相应的类型检查 package main import ( "fmt" ) func main() { var a string = "initial" fmt.Println(a) var b, c int = 1, 2 fmt.Println(b, c) var d = true fmt.Println(d) var e int fmt.Println(e) f := "short&