|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 常量问题...
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
383
人关注过本帖
标题:
常量问题...
只看楼主
加入收藏
williamtg
等 级:
论坛游民
帖 子:5
专家分:20
注 册:2009-8-26
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:10 回复次数:5
常量问题...
怎样改变常量?
搜索更多相关主题的帖子:
常量
2009-09-20 14:26
举报帖子
使用道具
赠送鲜花
williamtg
等 级:
论坛游民
帖 子:5
专家分:20
注 册:2009-8-26
第
2
楼
收藏
得分:0
还有,大家觉得《The C++ Programming language》怎么样?
2009-09-20 14:33
举报帖子
使用道具
赠送鲜花
gz81
等 级:
职业侠客
帖 子:137
专家分:369
注 册:2008-5-1
第
3
楼
收藏
得分:10
以下是引用
williamtg
在2009-9-20 14:26的发言:
怎样改变常量?
常量没法改变。
下面代码好像是改变了常量的值,其实是假像。在cout<<*p<<endl;后面加一句cout<<i;就看到了。
#include <iostream>
using namespace std;
int main()
{
const int i=1;
int *p=(int*)&i;
*p=2;
cout<<*p<<endl;
//cout<<i;
}
我的空间:http://student./space.php?uid=116706
2009-09-20 15:36
举报帖子
使用道具
赠送鲜花
williamtg
等 级:
论坛游民
帖 子:5
专家分:20
注 册:2009-8-26
第
4
楼
收藏
得分:0
.....
这样啊....
2009-09-20 15:51
举报帖子
使用道具
赠送鲜花
gz81
等 级:
职业侠客
帖 子:137
专家分:369
注 册:2008-5-1
第
5
楼
收藏
得分:0
以下是引用
williamtg
在2009-9-20 14:33的发言:
还有,大家觉得《The C++ Programming language》怎么样?
这本书被称为“c++专家入门教程”,不适合入门看的,像看天书。
我的空间:http://student./space.php?uid=116706
2009-09-20 16:02
举报帖子
使用道具
赠送鲜花
debroa723
等 级:
贵宾
威 望:
23
帖 子:862
专家分:1954
注 册:2008-10-12
第
6
楼
收藏
得分:0
常量无法改变,但不是绝对不能的。
三楼的例子,常量i所在内容的地址内容确实在*p=2时,被改变了,但为什么cout<<i却仍是1呢,这是因为这句代码在编译期就把常量i表示的数值放入了二进制代码里,也就是说在运行期,cout<<i的汇编码里没有和i常量有关的存在,也就无法表现出常量i被改变了,但它的确已经改变了,因为常量i在数据段里是有地址的,而这个地址被p得到,如果存在运行期编译(脚本)的话,在运行时对cout<<i再做一次编译,这时打出来的值一定是改变后的量。
基于以上原因,脚本里没有常量,只有变量。
2009-09-20 22:06
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
常量问题...
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018924 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved