社区
Java SE
帖子详情
问个const的问题
jiangnancaizi
2008-12-08 02:48:05
1. java中,const 常量是存放在哪个区? 静态存储区,常量区还是堆栈区? const static又是存放在哪个区?
2. c和c++中,局部const常量是存放在什么区,全局又是存放在什么去,局部和全局得const static又是存放在什么区
...全文
149
15
打赏
收藏
问个const的问题
1. java中,const 常量是存放在哪个区? 静态存储区,常量区还是堆栈区? const static又是存放在哪个区? 2. c和c++中,局部const常量是存放在什么区,全局又是存放在什么去,局部和全局得const static又是存放在什么区
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiangnancaizi
2008-12-10
打赏
举报
回复
????
VCRWX
2008-12-10
打赏
举报
回复
1. java中,const 常量是存放在哪个区? 静态存储区,常量区还是堆栈区? const static又是存放在哪个区?
首先你要确定java中有无const,它是以final出现的,如果你在定义中没有用到new,她是存在与静态内存栈中,const static存在与池中
2. c和c++中,局部const常量是存放在什么区,全局又是存放在什么去,局部和全局得const static又是存放在什么区
c和c++中的const是有区别的,c中的const是有内存的,也就是一个不能改变值的普通常量.
C++中的const有时候是不占用内存的,至于什么时候站用内存,分配在什么地方还要分情况,建议你看一看<<C++编程思想>>
恋空
2008-12-09
打赏
举报
回复
学习
ZangXT
2008-12-09
打赏
举报
回复
[Quote=引用 8 楼 jiangnancaizi 的回复:]
那能否回答我的第二,三个问题
2. c和c++中,局部const常量是存放在什么区,全局又是存放在什么去,局部和全局得const static又是存放在什么区 ?
3. 我在网上看到一个题目,说const char str3[] = "abc";是存放在堆栈区, const char* str6 = "abc";则是放在常量区(好像也叫做只读区),为什么呢
[/Quote]
对于C++写的可执行程序:
全局/静态数据区存储全局变量及静态变量(包括全局静态变量和局部静态变量)。
常量数据区中存储程序的常量字符串等。
栈中存储局部变量,参数等,堆存储动态分配的数据(通过new,delete,malloc()和free())来控制。
代码区。
你可以在代码里面分别定义各种类型的变量,然后察看其地址,看看是否相连就知道了。
jiangnancaizi
2008-12-09
打赏
举报
回复
[Quote=引用 12 楼 haoxiongok 的回复:]
引用 11 楼 jiangnancaizi 的回复:
那const是放在常量区么? 最好直接回答我的2,3问题,谢谢^_^
应该和静态变量还有字符串常量放在一起吧,统称为数据区
[/Quote]
那是否可以理解为 : 那数据区是否又分为静态数据区和常量区,静态数据区放全局变量和static变量,常量区放常量字符串和const修饰的常量??
haoxiongok
2008-12-09
打赏
举报
回复
[Quote=引用 11 楼 jiangnancaizi 的回复:]
那const是放在常量区么? 最好直接回答我的2,3问题,谢谢^_^
[/Quote]
应该和静态变量还有字符串常量放在一起吧,统称为数据区
jiangnancaizi
2008-12-09
打赏
举报
回复
那const是放在常量区么? 最好直接回答我的2,3问题,谢谢^_^
jiangnancaizi
2008-12-08
打赏
举报
回复
那能否回答我的第二,三个问题
2. c和c++中,局部const常量是存放在什么区,全局又是存放在什么去,局部和全局得const static又是存放在什么区 ?
3. 我在网上看到一个题目,说const char str3[] = "abc";是存放在堆栈区, const char* str6 = "abc";则是放在常量区(好像也叫做只读区),为什么呢
shenjie1989
2008-12-08
打赏
举报
回复
java并没有定义所谓的静态存储区,C++也没有
ZangXT
2008-12-08
打赏
举报
回复
刚学不用过于关注这些问题,不是几句话能说明白的
有些精力了去看《深入java虚拟机》这样的书。
不要相信一个叫做《java栈与堆》这个帖子的话,够了。
jiangnancaizi
2008-12-08
打赏
举报
回复
java的data segment中是否存放了static和final变量?
jiangnancaizi
2008-12-08
打赏
举报
回复
哦,我彻底晕了,做c得时候我知道静态存储区,堆区,堆栈区..........
好像内存中又分代码区,堆栈区,数据区
这些都是啥关系? java中为啥没有了静态存储区呢? 难道 java中得final static变量也是存放在数据区?
哪位高手来理顺一下这些关系啊
ZangXT
2008-12-08
打赏
举报
回复
java并没有定义所谓的静态存储区。
jiangnancaizi
2008-12-08
打赏
举报
回复
[Quote=引用 1 楼 meneil 的回复:]
Java中并没有const关键字,但是也将const作为了保留关键字,取而代之的是final关键字,代表定义一个常量,存于内存的data segment
[/Quote]
晕死,是我犯了低级错误了
顺便问一下,数据区是不是就是静态存储区?
meneil
2008-12-08
打赏
举报
回复
Java中并没有const关键字,但是也将const作为了保留关键字,取而代之的是final关键字,代表定义一个常量,存于内存的data segment
有关C++ 实现时extern 和
const
的
问题
之所以会先提起这个
问题
,当然和要解决的
问题
息息相关。你也许不禁会问:难道
const
常量不是文件间共享的吗?当然不是,原因是
const
常量的特殊性。下面我们看看c++ primer的作者怎么说的(重点!): /——– 当以...
const
T、
const
T*、T *
const
、
const
T&、
const
T*& 的区别
这里的T指的是一种数据类型,...单独的一个
const
你肯定知道指的是一个常量,但
const
与其他类型联合起来的众多变化,你是不是就糊涂了?下面我们一一来解析。
const
T、
const
T*、T *
const
、
const
T&、
const
T*& 的区别
C++20 新增两个
const
相关的关键字后,你能分清楚这四个关键字吗?
C++20新增了两个
const
相关的关键字,于是当前存在四个相似的关键字:
const
,
const
expr,
const
eval和
const
init。 接下来分别来进行讨论。 第一,经过
const
修饰的变量具有只读属性,并且初始化发生于运行期。也就是说...
C++
const
面试题和相关的解释
问题
:如果函数需要传入一个指针,面试官可能会问是否需要为该指针加上
const
,把
const
加在指针不同位置有什么区别;如果写的函数需要传入的参数是一个复杂类型的实例,面试官可能会问传入值参数或者引用参数有什么...
c++中
const
的作用
1)欲阻止一个变量被改变,可使用
const
,在定义该
const
变量时,需先初始化,以后就没有机会改变他了; 2)对指针而言,可以指定指针本身为
const
,也可以指定指针所指的数据为
const
,或二者同时指定为
const
; 3)在...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章