C++的常量const基本用法

来源:互联网 发布:淘宝宝贝地址无法打开 编辑:程序博客网 时间:2024/06/01 22:36
#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;//1cout << "*i2 = " << *i2 << endl;//1i1++;//可以改变指针//*i1 = 2;//不能改变值cout << "i1 = " << i1 << endl;//地址值(已改变)cout << "i2 = " << i2 << endl;//地址值*i2 = 5;cout << "*i1 = " << *i1 << endl;//未知值cout << "*i2 = " << *i2 << endl;//5cout << "++*i2 = " << ++*i2 << endl;//6cout << "*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;//19const int* p2  = c.constTest2();cout << "*p2 = " << *p2 << endl;//20getchar();};


我机器上的运行结果如下:

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


0 0
原创粉丝点击