const在C++ 和C 中的比较
来源:互联网 发布:影响因素分析模型知乎 编辑:程序博客网 时间:2024/06/04 19:03
目前,我们讨论的是C++99和C89 的标准;
C语言
在C语言(C89标准)中, const 的特性:
const int size=10; //正确(常变量)int array[size]={0} //错误(常变量不能用做数组下标)
C++语言
const int size=10; //正确(常量)int array[size]={0} //正确
这是什么原因呢?其实是在C语言和C++语言中,两者的编译方式有区别:
(1)C语言中把const还当做变量编译;
(2)C++语言中凡是出现常量的地方(编译时初始化)均用值来替换。
由于const 对象一旦创建后其值就不能再改变,所以const 对象必须初始化。
const int i=get_size(); //正确,运行时初始化const int j=42; //正确,编译时初始化const int k;//错误,k未经初始化
如果利用一个对象去初始化另外一个对象,则他们是不是const都没有关系。
int i=42;const int ci=i; //正确,i的值被拷贝给了ciint j=ci; //正确,ci的值被拷贝给了j
ci 的常量特征仅仅在执行改变ci 的操作才会发挥作用。
总结:
(1)C++语言和C语言对const的定义不同,C++语言中定义为常量,C语言中定义为常变量;
(2)两个语言对const的编译方式不同(详细见上面)
(3)C++语言中常量有向常变量退化的可能;同时,常量的“常”只是体现在修改它的值时才会发挥作用。
阅读全文
1 0
- const在C++ 和C 中的比较
- const在C和C++中的区别
- const 在c和c++中的区别
- const在C和C++中的区别
- const 在c和c++中的区别
- const 在c和c++中的作用
- const在C和C++中的区别
- const在c和c++中的区别
- const在c和c++中的区别
- const 在c和c++中的区别
- const 在c和c++中的区别
- const在c和c++中的异同
- const在C和C++中的区别
- const在C和C++中的区别
- const在C中的使用
- const在C中的使用
- const在c中的用法
- const在c中的用法
- 菜鸟打响排序算法第一枪(冒泡,选择,插入)
- bs4的使用
- knn算法的部分处理操作
- 数组与指针
- lnmp、lamp、lnmpa一键安装包(Updated: 2017-8-13)
- const在C++ 和C 中的比较
- QT QUdpSocket类
- db2笔记
- NYOJ 20 吝啬的国度(深搜)
- Android 创建CircularReveal揭露动画的实现
- ChainMap用法
- 进制转换,运算符,类型转换,
- Python学习笔记(十二)
- android 内存泄露分析