最近闲来无事.想深度了解一下变量在被编译后运行的地址的变化.闲话少说直接上干货.
package main
import (
"fmt"
)
func main() {
str01 := "This a String"
str02 := "This a String"
str03 := "This a String!"
fmt.Printf("str01 %p \n",&str01)
fmt.Printf("str02 %p \n",&str02)
fmt.Printf("str03 %p \n",&str03)
var str04 = "This a String"
var str05 = str04
var str06 = "This a String!"
fmt.Printf("str01 %p \n",&str04)
fmt.Printf("str02 %p \n",&str05)
fmt.Printf("str03 %p",&str06)
}
输出结果
str01 0xc000082030
str02 0xc000082040
str03 0xc000082050
str04 0xc0000101b0
str05 0xc0000101c0
str06 0xc0000101d0
结果表明.
str01 和 str02 运行后 内容一致.内存地址不一致.
str05 是 str04 赋值过去. 内容一致.内存地址不一致.
网友评论