
最近在学习C++,请问C++中有叫常变量的,为什么非得用常变量啊,用#define来定义不是一样吗?
4个回答
展开全部
“#define A=3”是符号常量为了便车阅读方便,在c++中,常用一个符号名代表一个常量,称为符号常量,即以标识符的形式出现的常量。他的好处是:1、含义清楚,2、在需要改变一个常量时能做到“一改全变”。符号常量虽然有名字,但它不是变量他的值在其作用域内部能改变,也不能被赋值。符号常量只是用一个符号代替一个字符串,在编译是把所有符号常量替换为所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元。而常变量具有变量的特征,它具有类型在内存中存在着以他命名的存储单元,可以用sizeof运算符测出其长度。用#difine命令定义符号常量是C语言所采用的方法,c++把它保留下来是为了与C兼容。
展开全部
两者是有些区别的,,1.const定义的变量有类型,宏定义没有...2.对于宏定义,每次引用这个定义时系统要给它分配一次内存,而const定义的系统只在第一次使用时分配一次内存,以后使用都不用分配了....然后就是所以尽量用const定义,效率会好些,,,自己打的,也是菜鸟..希望对你有帮助,一起加油...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define A 3
你下面程序里不管在哪里写到A 编译器都直接替换为3
输出函数的字符串里除外
而const int A=3;
只有在用到A作为变量的时候才是3
你下面程序里不管在哪里写到A 编译器都直接替换为3
输出函数的字符串里除外
而const int A=3;
只有在用到A作为变量的时候才是3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define 没有数据类型
而且另一个缺点是编译器和程序员看到的代码不同,这不利于debug
我也问过这个问题
而且另一个缺点是编译器和程序员看到的代码不同,这不利于debug
我也问过这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询