1.通过指针变量p访问其成员变量name,有哪几种方式?
A p.name
B (&p).name
C (*p).name
D p->name
答案是:AC,&表示取地址,*表示解引用,D答案是C语言中的用法。
2.下面这段代码能否通过编译?如果通过,输出什么?
package main
import "fmt"
type MyInt1 int
type MyInt2 int
func main() {
var i int = 0
var i1 MyInt1 = i
var i2 MyInt2 = i
fmt.Println(i1, i2)
}
答案是不能通过编译,代码先声明了两个新的类型,虽然他们本质上是int,但是Go语言是强类型语言,他会认为int和MyInt1、MyInt2不是同一种类型,因此是不能给i1和i2赋值int类型的i,运行会报类型不匹配的错误。