| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4948 人关注过本帖
标题:关于常量存储区的问题
只看楼主 加入收藏
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

它那个常量折叠意思大概:
就是俩个名字代表一个东西一个地址,都是一个常量


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-27 21:09
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用SunShining在2006-10-27 21:09:09的发言:

const int t=10;

肯定是有空间的.

const变量与普通变量一样 只不过该地址被编译器解释为只读而已.

这个是c中const,C++中的不同.


2006-10-27 21:11
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用我不是郭靖在2006-10-27 21:11:21的发言:

这个是c中const,C++中的不同.

自己保存为.cpp文件.然后去试试我的代码


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-27 21:12
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用我不是郭靖在2006-10-27 20:25:30的发言:
哦,原来c和c++中的const的是不一样的.
我还一直以为是c中的const的.

C中const的意思是"一个不能被改变的普通变量" const常量总是占用存储而且它的名字是全局符.

而C++中并不一定要为const创建空间.
当用到extern const int bufsize;或取const地址时,才分配存储空间.

我说的没错吧?

我前边说的很清楚啊,你的语句里有&j,当然就分配空间了

上边的话不是我说的,是Thinking in C++里话.


2006-10-27 21:16
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
............汗
你那个是从哪里书来得
楼上,我认为有地址
不过,你说的那里说到了符号表,我觉得那个机理有实现的可能
关键是你那里说到 求地址时才分配地址.
这个你怎么证明呢??

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-27 21:16
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
Thinking in C++

是Bruce Eckel说的

是不是这本书很挫啊

2006-10-27 21:18
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

晕啊.为不为const分配地址.拿sizeof一下不就知道了...


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-27 21:20
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
不过.得说明一点.不管在C/C++中.const都不是常量.

修正一点.在C++中 const确实有着常量的作用.他可以理解成常量.但他不是!

[此贴子已经被作者于2006-10-27 21:46:54编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-27 21:21
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用SunShining在2006-10-27 21:21:21的发言:
不过.得说明一点.不管在C/C++中.const都不是常量.

那你觉得const应该是什么呢?


2006-10-27 21:24
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用我不是郭靖在2006-10-27 21:05:55的发言:

我觉得这个10不分配空间.

通常C++编译器并不为const创建存储空间,相反它把定义保存在它的符号表里.

晕,这里是铁的分配空间
不要把书读死了
你要真正理解它意思
10要是没空间
计算机知道10是什么吗???
计算机怎么知道10应该有哪些特征哪些运算呢??
你的书说的是这个意思,那个 t在没有取地址时没有空间
是放在符号表里面储存,哈哈,如果这样的话,又有一个const与define的区别了
define 没用符号表


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-27 21:24
快速回复:关于常量存储区的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024847 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved