最近在学习C++,请问C++中有叫常变量的,为什么非得用常变量啊,用#define来定义不是一样吗?

比如:CONSTINTA=3;用#defineA=3不是也一样吗... 比如:CONST INT A=3;用#define A=3不是也一样吗 展开
 我来答
二天有
2010-03-25 · TA获得超过428个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:97万
展开全部
“#define A=3”是符号常量为了便车阅读方便,在c++中,常用一个符号名代表一个常量,称为符号常量,即以标识符的形式出现的常量。他的好处是:1、含义清楚,2、在需要改变一个常量时能做到“一改全变”。符号常量虽然有名字,但它不是变量他的值在其作用域内部能改变,也不能被赋值。符号常量只是用一个符号代替一个字符串,在编译是把所有符号常量替换为所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元。而常变量具有变量的特征,它具有类型在内存中存在着以他命名的存储单元,可以用sizeof运算符测出其长度。用#difine命令定义符号常量是C语言所采用的方法,c++把它保留下来是为了与C兼容。
勤快且清廉的小福星H
2010-03-25
知道答主
回答量:25
采纳率:0%
帮助的人:0
展开全部
两者是有些区别的,,1.const定义的变量有类型,宏定义没有...2.对于宏定义,每次引用这个定义时系统要给它分配一次内存,而const定义的系统只在第一次使用时分配一次内存,以后使用都不用分配了....然后就是所以尽量用const定义,效率会好些,,,自己打的,也是菜鸟..希望对你有帮助,一起加油...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乱方纷落寒3O
2010-03-25 · TA获得超过1387个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:0
展开全部
#define A 3

你下面程序里不管在哪里写到A 编译器都直接替换为3
输出函数的字符串里除外

而const int A=3;

只有在用到A作为变量的时候才是3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Leroy雷
2010-03-25 · TA获得超过418个赞
知道答主
回答量:371
采纳率:0%
帮助的人:0
展开全部
#define 没有数据类型
而且另一个缺点是编译器和程序员看到的代码不同,这不利于debug
我也问过这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式