指针变量访问成员变量

题目:

通过指针变量 p 访问其成员变量 name,有哪几种方式?(多选)

  • A.p.name
  • B.(&p).name
  • C.(*p).name
  • D.p->name

答案解析

1
AC

A. p.name:直接使用指针变量 p 访问其成员变量 name

C. (*p).name:通过解引用指针变量 p,然后访问其成员变量 name

B. (&p).name 是不正确的,因为 &p 表示取 p 的地址,得到的是一个指向指针变量 p 的指针,而非指针变量 p 自身。

D. p->name 是 C/C++ 中的语法,而在 Go 中是不支持的。

参考程序如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main

import "fmt"

type F struct {
name string
}

func main() {
f := F{
name: "ft",
}

var p *F // 将指针类型声明为 *F
p = &f
fmt.Println(p)
}

指针变量访问成员变量
http://example.com/2023/05/22/Go每日一题/指针变量访问成员变量/
作者
Feng Tao
发布于
2023年5月22日
更新于
2023年5月22日
许可协议