您的位置:首页 - 教程 - C++ - 正文
C++_const

 

//const在C不可以初始化数组

//const在C++可以用来初始化数组

 

 #include <iostream>
 using namespace std;
 
 void main()
 {
     const int num = 5;
     int a[num];//const在C++可以用来初始化数组
     int i = 0;
 
     for (auto data : a)
     {
         data = i++;
         std::cout << data << std::endl;
     }
 
     system("pause");
 }

 

常量和约束访问

关键字const约束对象的访问性质,使对象值只能读,不能写,即不允许修改对象的值

 

//C++权限问题与强类型

//因为为了权限的编程,只读不可写的权限,指向常量的指针int const *p2(&b);C++强类型会忽略

//给予可读可写的权限,常量指针int * const p4(&b);强类型发生作用

//指向常量的常量指针const int * const p5(&a);给予只读权限

 

 #include <iostream>
 using namespace std;
 
 //C++权限问题与强类型
 //因为为了权限的编程,只读不可写的权限,指向常量的指针int const *p2(&b);C++强类型会忽略
 //给予可读可写的权限,常量指针int * const p4(&b);强类型发生作用
 //指向常量的常量指针const int * const p5(&a);给予只读权限
 
 void main()
 {
     int a = 10;
     const int b = 20;
 
     //指向常量的指针,指向的数据不可以赋值
     int const *p1(&a);
     int const *p2(&b);
 
     //常量指针
     int * const p3(&a);
     //int * const p4(&b);//error C2440: “初始化”: 无法从“const int *”转换为“int *”
     
     //指向常量的常量指针
     const int * const p5(&a);
     const int * const p6(&b);
     
     system("pause");
 }

 

常引用

const 类型&引用名=对象名;

例如:

int a=314;

const int & ra=a;//ra是a的常引用

 

cosnt比#define更有优势

//#define强制替换,没有明确的类型

//const动态监测类型,实现赋值,赋值会自动进行数据类型转换,避免类型不一致的出错


评论: