C++中const的用法
程序员文章站
2022-07-09 21:42:55
...
C++ Priemr Plus推荐使用const
1.这样可以避免由于无意间修改数据而导致编程错误;
2.使用const使得函数能够处理const参数和非const参数,否则只能接受非const参数;
3.如果条件允许,则因该将指针形参声明为指向const的指针;
#include <iostream>
using namespace std;
int main()
{
int a1 = 3; //非const
int a3 = 99;
const int a2 = a1; //是const
int *p1 = &a1; //不是const指针
const int *p2 = &a1;//不是const指针,所指数据是const,p2可以指向其他的地址,但是不能通过解应用修改指向地址的值;
int *const p3 = &a1;//是const指针,所指数据不是const,指针是const,不能指向其他地址,但是初始化指向地址的值可通过解应用修改;
int const *const p4 = &a1;//是const指针,所指数据是const
const int *const p5 = &a1;//是const指针,所指数据是const
p2 = &a3; //合法 p2不是const指针可以指向其他的地址
//*p2 = 88;//非法 p2所指数据是常量,不能通过解应用修改指向地址的值
//p3 = &a2;//非法 p3是const指针,不能指向其他地址
*p3 = 88;//合法 p3所指数据不是const,初始化指向地址的值可通过解应用修改
//p4 = &a2;//非法 const指针不能指向其他地址
//*p4 = 99;//非法 p4所指是const数据,不能通过解引用修改
//p5 = &a2;//非法 const指针不能指向其他地址
//*p5 = 99;//非法 p5所指是const数据,不能通过解引用修改
cout << "*p2=" << *p2 << endl;
cout << "*p3=" << *p3 << endl;
cin.get();
return 0;
}
推荐阅读
-
C#中String StringBuilder StringBuffer类的用法
-
ASP.NET C#中Application的用法教程
-
SQL中distinct 和 row_number() over() 的区别及用法
-
iOS中UIScrollerView的用法及基于AotoLayout的控件悬停
-
iOS App开发中Masonry布局框架的基本用法解析
-
从源码解析Python的Flask框架中request对象的用法
-
C#中datagridview的EditingControlShowing事件用法实例
-
Android中的Selector的用法详解及实例
-
详解Python3中yield生成器的用法
-
python中的lambda表达式用法详解