在C语言中用const定义的变量如何修改

[复制链接]
查看11 | 回复2 | 2009-6-9 15:26:04 | 显示全部楼层 |阅读模式
首先是处理时间上的不同,#define宏是预处理命令,是在编译前的预处理阶段完成的。而const是在编译阶段完成的。然后是效果上的不同,const会进行严格的类型检查,而#define宏则只是简单的替换,不会进行类型检查。再就是功能上的不同,const一般用来定义文字常量,其功能相对单薄,而#define由于其简便性,可以在许多方面达到意想不到的效果,比如mfc中用到了许多宏完成了复杂的rtti机制,序列化机制,等等。而这些都是const无法达到的效果的。另外#define宏用得比较多的地方就是防止头文件的重复包含了。这一点也是const无法做到的。
回复

使用道具 举报

千问 | 2009-6-9 15:26:04 | 显示全部楼层
指针两种修改方法1:
int
const
*pci
指针指向的对象被const成常量,指针本身是整型,可以修改,但不能修改指针指向对象的值。2:
int
*
const
pci第二种则是这个指针本身被const成常量,指针不能修改,可修改指向的整型。参考书籍《C和指针》,最好三剑客的书都敲一遍,然后你就悟了...
回复

使用道具 举报

千问 | 2009-6-9 15:26:04 | 显示全部楼层
const定义的是常量,运行中不能改,再间接的方式也不能改,这不符合规定。想改的话就不要定义成const常量“我指的是如何用一种间接的方式使得用const定义的变量在程序运行中可以被修改”,不知道你用的是何种间接的方式,贴出来分离一下??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行