| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1024 人关注过本帖
标题:两个小小程序问题的请教
只看楼主 加入收藏
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用片风在2006-7-7 14:48:28的发言:
常数是没有地址还是没有确定的地址?那他在内存里是怎么储存的呢?

有地址,但你不能寻址.跟没有一样


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-07 16:50
ot1122
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-4-20
收藏
得分:0 
2006-07-08 10:34
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
int main()
{
int *p;
*p=10;
cout<<*p<<endl;
returen 0;写错了
}

2006-07-08 11:54
ysol
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-6-11
收藏
得分:0 

#include<iostream.h>

int main()
{
//int *p;
//*p=10;//非法操作,p不能这么取址
//要是想强行赋一个地址给*P可以用下面这个语句。后果自己想...
int* p=(int*)10
cout<<*p<<endl;
returen 0;
}
为什么运行时出错

[此贴子已经被作者于2006-7-9 15:37:05编辑过]

2006-07-09 15:26
ysol
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-6-11
收藏
得分:0 

#include<iostream>

using namespace std;

int a=110;
int b=119;

void main()
{

int *p;
p=(int*)4280416;//强制将4280416这个指定地址赋给p
cout<<"强制地址访问前a,b值: ";
cout<<a<<","<<b<<endl;
*p=8;
cout<<*p<<endl;
cout<<"强制地址访问后a,b值: ";
cout<<a<<","<<b<<endl;

}

这段程序不可移植!!!
以上是强制地址访问的一个小例子,在我的机器上通过强制地址访问修改了a的值,

2006-07-09 16:18
ysol
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-6-11
收藏
得分:0 
以下是引用song4在2006-7-7 16:50:59的发言:

有地址,但你不能寻址.跟没有一样

“有地址,但你不能寻址.跟没有一样”这句话值得探讨!按照c++编译器的规则有2种常量定义方式
其一:
#define PI=3.14;
PI(本质是宏)如果也看成常量的话,那么PI是没有地址可言的,编译器在遇到PI的地方用3.14替换它,所以没有地址
其二:
const int a=3;
这里的a本质还是一个变量,只是被限制了修改。但是a的地址还是可以取出来的(也就是可以寻址)!!!只是不能修改而已。要不然也没有别名(引用)这一说了。下面这个程序可以看出解释常量的地址问题


#include <iostream>

using namespace std;

void main()
{
const int a =10;
cout<<&a<<endl; //显示a的地址
const int* b = &a; //取出a的地址赋给常量指针b,注意:指针以及下面的引用前一定要用const修饰
cout<<*b<<endl;
const int& c= a; //引用的本质就不详细解释了吧???
cout<<c<<endl;
}

2006-07-09 17:45
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
const int a=3;
这里的a本质还是一个变量,只是被限制了修改。但是a的地址还是可以取出来的(也就是可以寻址)!!!只是不能修改而已。要不然也没有别名(引用)这一说了。下面这个程序可以看出解释常量的地址问题

声明:a是常量
你纯熟是搞笑,谁都知道我说的话是关于1243234234这样的常数
你这么写有什么意义么,不能修改的全是常量,跟没有一样

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-10 09:45
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
#define PI=3.14; ?????????
宏这样定义?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-10 10:03
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

笔误

#define PI 3.14


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-07-10 19:43
快速回复:两个小小程序问题的请教
数据加载中...
 
   



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

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