c++ const

简介: 指针的类型必须与其所指对象类型一致允许指向常量的指针指向一个非常量对象获取的,改变值的;指向常量的指针没规定其所指的对象必须是一个常量所谓指向常量的指针仅仅要求不能通过该指针改变对象值,而没有规定那个对象的值不能通过其他突进 改变所谓指向常量的指针或引用,指向常量,自觉的不去改变所指对象...
指针的类型必须与其所指对象类型一致
允许指向常量的指针指向一个非常量对象
获取的,改变值的;
指向常量的指针没规定其所指的对象必须是一个常量
所谓指向常量的指针仅仅要求不能通过该指针改变对象值,而没有规定那个对象的值不能通过其他突进 改变
所谓指向常量的指针或引用,指向常量,自觉的不去改变所指对象的值;
const指针
指针是对象而引用不是,指针本身可以定为常量
常量指针必须初始化const pointer
常量 指针一旦初始化,它的值-存放在常量指针中的值-地址就不能再改变
把*放在const关键字之前用以说明指针是常量
不变的是指针本身的值而非指向的那个值

  

int errNumb = 0;
int *const curErr = &errNumb;    //curErr将一直指向errNumb
const double pi = 3.14;
const double *const pip = π    pip是一个指向常量对象的常量指针
弄清楚声明含义最行之有效的办法--从右往左读
指针本身是一个常量并不意味不能通过指针修改其所指向的值,不能改变的是此指针不能再指向别的对象
pip是一个指向常量的常量指针
则不论所指的对象值还是pip自己存储的地址值都不能改变
指针本身是不是常量以及指针所指的是不是常量就是两个相互独立的问题
指针本身是一个对象,它又可以指向另外一个对象
指针本身是不是常量以及指针所指的是不是一个常量就是两个相互独立的问题
顶层const(top-level const)表示指针本身是一个常量
底层const(low-level const)表示
底层const与指针和引用
int i = 0;
int *const p1 = &i;    //指针本身常量,指针不能再指向别的对象
const int ci = 42;    
一个对象是不是常量表达式由它的数据类型和初始值共同决定
将变量申明为constexpr由编译器验证变量的值声明为constexpr变量一定是常量
尽管不能使用普通函数

 

目录
相关文章
|
5月前
|
C++
C++中的const指针与const引用
C++中的const指针与const引用
57 2
|
4月前
|
编译器 C++
【C++】类和对象④(类的默认成员函数:取地址及const取地址重载 )
本文探讨了C++中类的成员函数,特别是取地址及const取地址操作符重载,通常无需重载,但展示了如何自定义以适应特定需求。接着讨论了构造函数的重要性,尤其是使用初始化列表来高效地初始化类的成员,包括对象成员、引用和const成员。初始化列表确保在对象创建时正确赋值,并遵循特定的执行顺序。
|
5月前
|
编译器 C++
C++中的内联函数与const限定词的使用
C++中的内联函数与const限定词的使用
32 1
|
4月前
|
编译器 C++
【C++】:const成员,取地址及const取地址操作符重载
【C++】:const成员,取地址及const取地址操作符重载
30 0
|
5月前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(下)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
22 1
|
5月前
|
编译器 C++
【C++】类与对象(运算符重载、const成员、取地址重载)
【C++】类与对象(运算符重载、const成员、取地址重载)
39 2
|
5月前
|
编译器 C++
【C++】【C++的常变量取地址问题(对比C的不同)】const修饰的常变量&volatile修饰用法详解(代码演示)
【C++】【C++的常变量取地址问题(对比C的不同)】const修饰的常变量&volatile修饰用法详解(代码演示)
|
5月前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(中)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
24 0
|
5月前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(上)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
20 0
下一篇
无影云桌面