go语言与C语言对比

核心差异

1. go语言有内存回收机制,而C没有。 这减少了程序员出错的概率,C语言管理指针经常发生野指针、空指针的问题。

2. go语言感觉是在C与python等语言中的一个折中。go语言中还保留着指针,简短变量这样的东西。 而简短变量或函数中的临时变量可以被返回到函数外面。 有点不伦不类的感觉。

3. go语言局部变量是在堆上分配还是在栈上分配,这个是在编译的时候编译器决定的; 而C语言中局部变量就在堆上分配。 所以go语言中局部变量可以逃逸到外面来。

4. go语言能使用new来创建一个对象或类型,并返回其指针。 但是new却并不一定就是在堆上分配的,它是在编译的时候编译器根据其引用决定的。 另外new是一个内建函数,并非关键字,这与C++一样。

未完待续

posted @ 2017-11-22 11:11  你的KPI完成了吗  阅读(2517)  评论(0)    收藏  举报