Go中的*p++

题目:

下面代码输出什么?

1
2
3
4
5
6
7
8
9
10
func incr(p *int) int {
*p++
return *p
}

func main() {
p :=1
incr(&p)
fmt.Println(p)
}
  • A. 1
  • B. 2
  • C. 3

答案解析:

参考答案及解析:B。

​ 一元运算符具有最高优先级。由于++和–运算符形成的是语句,而不是表达式,因此它们不属于运算符层次结构。因此,语句p++与(p)++相同。

知识点:指针,incr() 函数里的 p 是 *int 类型的指针,指向的是 main() 函数的变量 p 的地址。 第 2 行代码是将该地址的值执行一个自增操作,incr() 返回自增后的结果。


Go中的*p++
http://example.com/2023/06/26/Go每日一题/Go中的-p/
作者
Feng Tao
发布于
2023年6月26日
更新于
2023年6月26日
许可协议