Golangのポインタ(一)
2447 ワード
golangのポインタはCのように計算できません.例えば、配列のヘッダポインタを取得し、ヘッダポインタに沿って下に増やし、配列の各値を順次取得します.golangのポインタはそれ自体のsizeを知らず、加算減算もできません
パラメータ伝達、値伝達
実行結果
パラメータ伝達、参照伝達
結果
まとめポインタを使用して値を渡すタイミング 内容を変更することを考慮する .構造が大きすぎる
package main
import "fmt"
func main () {
var name = "Lee"
// C , &
var p_name *string = &name
// *p_name , p_name
*p_name = "Leee"
fmt.Println(name)
}
パラメータ伝達、値伝達
package main
import "fmt"
func swap_val(a, b int){
b, a = a, b
}
func swap_val_res(a, b int) (int,int){
b, a = a, b
return a, b
}
func main () {
a, b := 1,2
fmt.Println(a, b)
swap_val(a, b)
fmt.Println(a, b)
a, b = swap_val_res(a, b)
fmt.Println(a, b)
}
実行結果
1 2
1 2
2 1
パラメータ伝達、参照伝達
package main
import "fmt"
func swap_ref(a, b *int){
*b, *a = *a, *b
}
func main () {
a, b := 1,2
fmt.Println(a, b)
swap_ref(&a, &b)
fmt.Println(a, b)
}
結果
1 2
2 1
まとめ