3.2 go new函数的使用

package main

import "fmt"

func main() {
	//a := 10
	var p *int
	//p=&a
	p = new(int)
	*p = 666
	fmt.Println("p=", p)
	fmt.Println("*p=", *p)

	b := *p
	fmt.Println("b=", b)
	fmt.Println("&b=", &b) //b地址跟p不同

	//自动推导
	q := new(int)
	*q = 777
	fmt.Println("*q=", *q)

	//
	m, n := 10, 20
	//swap(m, n)//变量传递值,不会改变值;传递给新的变量
	swap2(&m, &n) //传递指针 交换指针指向;值会发生变化

	fmt.Printf("m=%d,n=%d\n", m, n)

}
func swap(m, n int) {
	m, n = n, m
	fmt.Printf("交换后 m=%d,n=%d\n", m, n)
}
func swap2(m, n *int) {
	*m, *n = *n, *m
	fmt.Printf("交换后 m=%d,n=%d\n", *m, *n)
}
发布了124 篇原创文章 · 获赞 94 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/h4241778/article/details/105282309
3.2
今日推荐