c, c++ const的区别
2012-12-20 21:36
176 查看
相信很多人对这个是不清楚的。本人也很迷惑,google之,找到了一个精辟的文章。地址如下:
/article/9231742.html
大家可以去看看。。。
总结一下,c语言的const只是声明问只读变量。变量的值在编译期是不知道的。
c++的const是声明问常量,值在编译期就知道了,所以下面的代码可以出现在c++中:
const int size = 10;
char array[size];
数组的大小,也必须要求是在编译期确定的。
关于const修饰指针/变量的问题:
const <data type> <variable>
const 总是把variable修饰为常量, 而不管中间的data type 是基本类型还是自定义类型,或者是typedef。
typedef char * pStr;
char string[4] = "abc";
const char *p1 = string;
const pStr p2 = string; // 这里,const 修饰p2为常量,所以p2++ 等操作会报错的。
/article/9231742.html
大家可以去看看。。。
总结一下,c语言的const只是声明问只读变量。变量的值在编译期是不知道的。
c++的const是声明问常量,值在编译期就知道了,所以下面的代码可以出现在c++中:
const int size = 10;
char array[size];
数组的大小,也必须要求是在编译期确定的。
关于const修饰指针/变量的问题:
const <data type> <variable>
const 总是把variable修饰为常量, 而不管中间的data type 是基本类型还是自定义类型,或者是typedef。
typedef char * pStr;
char string[4] = "abc";
const char *p1 = string;
const pStr p2 = string; // 这里,const 修饰p2为常量,所以p2++ 等操作会报错的。
相关文章推荐
- C++ 中临时对象 和 const 对象 的一个区别
- C、C++中const的区别
- C++中static_cast、const_cast、reinterpret_cast的用法举例,附带举例说明强制类型转换时int和int&的区别
- C++知识点总结(上):指针和引用,static关键字,const关键字,malloc\free和new\delete的区别等
- C++中struct和class的区别及C++ this变量和const变量类型
- 标准c++的类型转换符之间的区别(static_cast,dynamic_cast,const_cast,reinterpret_cast)(转载)
- C++和C语言const区别关键字总结
- C++中const迭代器 和 const_iterator的区别
- const在C语言和C++中的区别
- c和c++关于const的一些区别
- C++常见面试题(一)C/C++区别 const用法
- 【C++】static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
- const和static在c和c++环境下的区别
- C语言与C++中static,const 关键字的区别
- const在C++与C中的区别
- const在c/c++中的区别
- C++面试_堆栈的区别_堆栈的访问效率_关键字static的作用是什么_关键字const有什么含意
- C++中const迭代器 和 const_iterator的区别
- 【C++】用const修饰变量与define的区别
- c++中使用const关键字的联系区别