跟我一起学C++之从C到C++(const限定符)
Posted kongslly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟我一起学C++之从C到C++(const限定符)相关的知识,希望对你有一定的参考价值。
const限定符
1.用const给字面常量起个名字(标识符),这个标识符就称为标识符常量;因为标识符常量的声明和使用形式很像变量,所以也称常变量
2.定义的一般形式:
(1) const 数据类型 常量名=常量值;
(2)数据类型 const 常量名=常量值;
3.例如:const float PI=3.14159f;
4.注意事项:
(1)常变量在定义时必须初始化;
(2)常变量初始化之后,不允许再被赋值;
代码示例:
//main.cpp
#include <iostream>
using namespace std;//引入命名空间
int main(void)
{
//const int a; //1.Error,常量必须初始化
const int a = 100;
//a = 200; //2.Error,常量不能重新被赋值
int b = 22;
const int * p; //const在*左边,表示*p为常量,经由*p不能更改指针所指向的内容
p = &b;
//*p = 200; //2.Error,常量不能重新被赋值
//int * const p2; //1.Error,p2为常量,常量必须初始化
int * const p2 = &b; //const在*右边,表示p2为常量
//int c =100;
//p2 = &c; //2.Error,常量不能重新被赋值
*p2 = 200;
cout<<b<<endl;
cout<<*p<<endl;
return 0;
}
错误用法编译错误提示信息:
1. const int a;
error C2734: “a”: 如果不是外部的,则必须初始化常量对象
2. const int a = 100;a = 200;
error C3892: “a”: 不能给常量赋值
以上是关于跟我一起学C++之从C到C++(const限定符)的主要内容,如果未能解决你的问题,请参考以下文章
QT & C++:传递 'const QString' 丢弃限定符
C++ 错误 - 将 'const Dataset<double>' 作为 'this' 参数传递会丢弃限定符 [-fpermissive]