首页 > 试题广场 >

下列代码的输出结果为( ) package main

[单选题]
下列代码的输出结果为( )
package main
 
func main() {
 a := "012"
 pa := &a
 b := []byte(*pa)
 pb := &b
 
 a += "3"
 *pa += "4"
 b[1] = '5'
 
 println(*pa)
 println(string(*pb))
}  

  • 0  0
  • 4  0
  • 01234  052
  • 其他几项都不对
Golang 中 string 类型底层是一个二元结构,并不保存字符串的完整内容,只保存其首地址和长度。

`b := []byte(*pa)` 相当于将字符串 a := "012" 转为字节数组。在底层,它的操作是为 b 申请一个长度为 3 字节的连续空间,依次保存 '0','1','2' 三个字符,b 的空间和 a 指向的字符串完全独立,没有任何关系。
发表于 2020-02-27 22:42:33 回复(0)