美文网首页
【Go - 每日一小问 ,const 变量存储在哪里,堆还是栈上

【Go - 每日一小问 ,const 变量存储在哪里,堆还是栈上

作者: wn777 | 来源:发表于2024-09-02 23:52 被阅读0次

答:都不是 , 在bss(未初始化数据区) 和 data(初始化数据区)上。

在内存布局上遵循一定规律,Go 进程的内存空间布局由高地址到低地址大致可分为以下几段:

  • 栈(stack): 用户态的栈,栈的大小是固定的,其大小可以使用ulimit -s查看和调整,一般默认为8Mb,栈从高地址向低地址增长(函数调用)
  • 堆(heap): 动态分配的内存空间,程序在运行时动态分配和释放,堆内存的分配不是连续的,整体上是从低地址向高地址增长
  • bss(未初始化数据区): 未初始化数据区bss, 存放全局的未初始化赋值的变量
  • data(初始化数据区): 存放已经初始化的全局变量数据
  • text: 存放程序代码

相关文章

  • go-内存机制(1)

    逃逸分析 堆与栈 在go语言中,变量可以存储在栈或者堆之上。如果变量存储在栈之上,那么当这个栈被清理时,对应的栈内...

  • 3-6

    内存:全局区+代码区+堆区+栈区全局区:全局变量,static修饰的变量,const修饰的变量,常量,的存储区域代...

  • C++之const

    C语言中的const const 修饰的变量是只读的,本质还是变量 const 修饰的局部变量在栈上分配空间 co...

  • C++ const 分析

    1、C语言中的const: const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间 c...

  • Java基础篇

    堆栈 栈 存储局部变量 存储方法调用 堆 存储Java对象(成员变量 局部变量 类变量 ->指向的对象都存储在堆内...

  • Go 学习

    go语言局部变量分配在栈还是堆Golang 垃圾回收剖析go语言坑之for range

  • 面试官问:Go 中的参数传递是值传递还是引用传递?

    一个程序中,变量分为变量名和变量内容,变量内容的存储一般会被分配到堆和栈上。而在 Go 语言中有两种传递变量的方式...

  • 浅谈malloc,calloc,realloc函数之间的区别

    内存区域可以分为栈,堆,静态存储区和常量存储区。局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都...

  • Java中内存分配

    栈 存储局部变量 局部变量:定义在方法声明上和方法中的变量 堆 存储 new 出来的对象如果没有任何引用指针指向改...

  • iOS面试(2)

    1、内存中的栈和堆的区别是什么?那些数据在栈上,哪些在堆上?#define和const定义的变量,有什么区别什么情...

网友评论

      本文标题:【Go - 每日一小问 ,const 变量存储在哪里,堆还是栈上

      本文链接:https://www.haomeiwen.com/subject/qykkljtx.html