C++的常量const基本用法

发布时间:2016-12-7 18:36:14 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C++的常量const基本用法",主要涉及到C++的常量const基本用法方面的内容,对于C++的常量const基本用法感兴趣的同学可以参考一下。

#include <iostream> using namespace std; class Const { const int i; int j; public: Const(int ci); void test(); const int* constTest(); int* constTest2() const; }; Const::Const(int ci):i(ci) { j = 18; }; void Const::test() { int i0 = i; cout << "i0 = " << i0 << endl;//地址值 const int* i1;//整型指针,值是常量 i1 = &i0; //int* const i2;//必须要直接初始化 int* const i2 = &i0;//整型指针,指针是常量 cout << "i1 = " << i1 << endl;//地址值 cout << "i2 = " << i2 << endl;//地址值 //i2++;//不能改变指针 *i2 = 1;//可以改变值 cout << "i1 = " << i1 << endl;//地址值 cout << "i2 = " << i2 << endl;//地址值 cout << "*i1 = " << *i1 << endl;//1 cout << "*i2 = " << *i2 << endl;//1 i1++;//可以改变指针 //*i1 = 2;//不能改变值 cout << "i1 = " << i1 << endl;//地址值(已改变) cout << "i2 = " << i2 << endl;//地址值 *i2 = 5; cout << "*i1 = " << *i1 << endl;//未知值 cout << "*i2 = " << *i2 << endl;//5 cout << "++*i2 = " << ++*i2 << endl;//6 cout << "*i2 = " << *i2 << endl;//6 } /* const写在方法名前面,表示返回值是const */ const int* Const::constTest() { j++; return &j; } /* const写在方法名后面,表示是const函数 */ int* Const::constTest2() const { //j++;//const函数内不允许修改数据成员 //int* j1 = j;//const函数内不允许赋值给int* int j1 = j; j1++; return &j1; } int main() { Const c(3); c.test(); const int* const p = c.constTest(); cout << "*p = " << *p << endl;//19 const int* p2 = c.constTest2(); cout << "*p2 = " << *p2 << endl;//20 getchar(); }; 我机器上的运行结果如下: i0 = 3 i1 = 001DF950 i2 = 001DF950 i1 = 001DF950 i2 = 001DF950 *i1 = 1 *i2 = 1 i1 = 001DF954 i2 = 001DF950 *i1 = -858993460 *i2 = 5 ++*i2 = 6 *i2 = 5 *p = 19 *p2 = 20

上一篇:最短路--关于对floyd算法的理解
下一篇:C++中的头文件和源文件

相关文章

相关评论