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

比如:CONST INT A=3;用#define A=3不是也一样吗

“#define A=3”是符号常量为了便车阅读方便,在c++中,常用一个符号名代表一个常量,称为符号常量,即以标识符的形式出现的常量。他的好处是:1、含义清楚,2、在需要改变一个常量时能做到“一改全变”。符号常量虽然有名字,但它不是变量他的值在其作用域内部能改变,也不能被赋值。符号常量只是用一个符号代替一个字符串,在编译是把所有符号常量替换为所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元。而常变量具有变量的特征,它具有类型在内存中存在着以他命名的存储单元,可以用sizeof运算符测出其长度。用#difine命令定义符号常量是C语言所采用的方法,c++把它保留下来是为了与C兼容。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-25
两者是有些区别的,,1.const定义的变量有类型,宏定义没有...2.对于宏定义,每次引用这个定义时系统要给它分配一次内存,而const定义的系统只在第一次使用时分配一次内存,以后使用都不用分配了....然后就是所以尽量用const定义,效率会好些,,,自己打的,也是菜鸟..希望对你有帮助,一起加油...本回答被提问者采纳
第2个回答  2010-03-25
#define A 3

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

而const int A=3;

只有在用到A作为变量的时候才是3
第3个回答  2010-03-25
#define 没有数据类型
而且另一个缺点是编译器和程序员看到的代码不同,这不利于debug
我也问过这个问题