这是罗列上邓俊辉老师数据结构课,复现课堂代码的地方,老师课堂上用的语言是C++,这里用的是Go语言。
顺便记录一下自己犯下的一些错误,加深对数据结构的理解,也顺便熟悉一下Go语言
- 下面这两个是不一样的
var (
a *int
b int
)
// type 1
a = &b
// type 2
*a = b
以前我以为两个是一样的,但是如果在子函数中传入a,然后定义的b,在返回的时候,b和&b都因为子函数的消失而消失了。 因而第一种方式的a在子函数内是正确的,但是返回后a又回到了零值,这里并不是指针使用错误,而是因为变量作用域的问题。 第二种方式,因为a在返回后,a仍然存在,所以b消失后,a仍然能记录原来的情况。