C++ const限定符
2015-07-16 19:14
344 查看
基本特性
const对象一旦创建后其值就不能被修改,故而const对象必须进行初始化
可以用一个非const对象初始化一个const对象,也可以用一个const对象赋值给一个非const对象
默认状态下,const对象仅在文件内有效
当多个文件内出现了同名的const变量时,等同于在不同文件中定义了独立的变量
要在多个文件之间共享const对象,在变量的定义之前加上extern关键字
&类型与const
1、&(引用)类型与*(指针)类型不同,引用类型的声明、定义和初始化是一起的,初始化之后将不能再引用其他的变量
而指针类型的声明、定义、初始化以及之后的赋值都是没有限制的。
2、与const的搭配
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量.
来自为知笔记(Wiz)
const对象一旦创建后其值就不能被修改,故而const对象必须进行初始化
可以用一个非const对象初始化一个const对象,也可以用一个const对象赋值给一个非const对象
默认状态下,const对象仅在文件内有效
当多个文件内出现了同名的const变量时,等同于在不同文件中定义了独立的变量
要在多个文件之间共享const对象,在变量的定义之前加上extern关键字
&类型与const
1、&(引用)类型与*(指针)类型不同,引用类型的声明、定义和初始化是一起的,初始化之后将不能再引用其他的变量
而指针类型的声明、定义、初始化以及之后的赋值都是没有限制的。
int a =1;
int b =2;
int&c = a;
int*p;
p =&a;
2、与const的搭配
int a =1;
int b =2;
/**< 因为引用在被初始化之后就不能在引用其它变量,所以没有int & const c = a这种写法 */
constint&c = a;
/**
* 不能给c赋值,对a无要求(a可以是const或者非const类型,a也可以重新赋值)
* 不能将c赋值给非const类型
*/
constint*p1 =&a;//等同于int const *p1 = &a;
/**
* 底层const
* 不能通过p1修改a的值,对a无要求
* 不能将p1赋值给非const类型
* p1可以指向其他变量
*/
int*const p2 =&a;
/**
* 顶层const
* 可以通过p2修改a的值
* p2不能指向其他变量
*/
const int * const p3 = &a;
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量.
来自为知笔记(Wiz)
相关文章推荐
- C++ 虚函数及重载、重定义、重写
- c++中const用法总结
- C/C++之static
- 黑马程序员------C语言中交换两个变量的值
- C++之插入迭代器
- C++11之auto和decltype
- C++ 类型转换运算符
- C++之构造函数的继承
- C语言--程序设计基础——7、8章
- C++ 必须使用初始化列表
- C++ typeid
- C++全局函数与成员函数的区别
- 对dispatch_async到主线程的逻辑封装成C/C++接口类型
- C++ 连接Mysql数据库
- C++DLL
- 黑马程序员-C语言基础知识-运算符与表达式
- c++.primer.plus第五版第八章编程练习答案
- c++.primer.plus第五版第七章编程练习答案
- C++读取配置文件内中的数组
- C语言获取文件大小