| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 744 人关注过本帖
标题:关于const的一点问题,希望有人站出来解答
只看楼主 加入收藏
l521126430
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-14
收藏
 问题点数:0 回复次数:8 
关于const的一点问题,希望有人站出来解答
#include<stdio.h>
int main()
{
    const int a=3;
    int *p=(int*)&a;  
    *p=100;               
    printf("%d",a);     //输出为3,难道p与&a不是同一地址吗?
    return 0;
}
如注释,为什么a输出依然为三?
int main()
{
    int a=2;int b=4;
    int* const p=&b;
 printf("%d",*p);   //输出为 4
    int **p1=(int**)&p;
    *p1=&a;
    printf("%d",*p);    //输出为 2
    return 0;
}
而这个输出就为正确的?TELL  ME  WHY?  谢谢了,可以的话再讲下用处!
搜索更多相关主题的帖子: const 解答 
2008-02-15 23:19
first_love
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-11
收藏
得分:0 
(1)
const int a=3;定义了变量a上存储的值为3,不能改变;
int *p=(int*)&a; 表示指针p存储了a的地址;
*p=100; 将p上存储的内容改为100;
[结果] 输出a当然不变啦。
(2)
int* const p=&b;定义了一个指向常量指针p,p指向的地址是不可以改变的;所以printf("%d",*p); 结果输出为 4;
int **p1=(int**)&p;定义二级指针p1指向p所存储的地址,即p1存储的是b的地址;
*p1=&a;表示将p1存储的b的地址所指向的值改为地址a上的值,即修改了变量b存储的值。printf("%d",*p); 所以输出的结果为 2
-----------------------------------------------------
个人的理解,不知道这样解释是否正确?

2008-02-16 01:05
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上的很完美了,帮你顶一下啊,又复习了一遍啊,呵呵
2008-02-16 09:18
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
不过你用vc++调试你会看到很奇怪得东西....
2008-02-16 09:31
l521126430
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-14
收藏
得分:0 
谢谢。
2008-02-16 16:54
l521126430
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-14
收藏
得分:0 
谢谢。
2008-02-16 16:54
a19870502
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2007-10-31
收藏
得分:0 
我也学到东西了。
2008-02-17 21:28
eagleboycn
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-9-26
收藏
得分:0 
[bo]以下是引用 [un]first_love[/un] 在 2008-2-16 01:05 的发言:[/bo]

(1)
const int a=3;定义了变量a上存储的值为3,不能改变;
int *p=(int*)&a; 表示指针p存储了a的地址;
*p=100; 将p上存储的内容改为100;
[结果] 输出a当然不变啦。
(2)
int* const p=&b;定义了一个指向常量指针p,p指向的地址是不 ...


请教一下:
第二部分:
我用dev c++和VC都试过,结果改变的只有p和*p1,a,b地址,值并没有改变啊
但是p声明是常量指针,为什么可以改变其指向的地址?

[[it] 本帖最后由 eagleboycn 于 2008-2-18 07:31 编辑 [/it]]

兵法的精要在于韬晦自己
2008-02-18 07:28
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
老早就已经讨论过一次了
2008-02-19 09:44
快速回复:关于const的一点问题,希望有人站出来解答
数据加载中...
 
   



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

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