Go 关于程序内存地址01--相同的值内存地址的问题

最近闲来无事.想深度了解一下变量在被编译后运行的地址的变化.闲话少说直接上干货.

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 赋值过去. 内容一致.内存地址不一致.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容