上大学那会学了C,可是没用心去听,所以指针那块一直觉得很难,工作之后也一直是用java,所以指针对于我来说是一块不想触碰的地方,最近看go程,很多地方也都使用了指针来操作,看了看其实指针也不是很难搞,只是在程序中用好,用对指针可能还是有难度的! go的指针和C基本没什么区别,我粗俗的理解就是用来操作内存的
var int a
a =20
var b *int
b=&a
fmt.println(*b)
// 输出的是20
// 指针操作array
const max int = 3
arrays := []int{100, 200, 300}
var ptr [max]*int
var i int
for i = 0; i < max; i++ {
fmt.Println(arrays [i])
ptr[i] = &arrays [i]
}
for i = 0; i < max; i++ {
fmt.Println(*ptr[i])
}
2017.5.11 java的引用传递和go,c指针传递差不多,只是指针显示表达了对内存的操作!我猜想可能很多初学C的人和我一样都是比较恐惧指针的,所以java发明者就换个名字,这样让开发者不知不觉的其实还是在使用指针啊!当然还有很多原因,这是需要我们去体会的! 看到知乎上有篇帖子https://www.zhihu.com/question/49914062?sort=created 觉得总结下来还是归结于效率问题啦!