一、const修饰基本数据类型
1.1 const修饰一般常量及数组
int const a = 100;
const int a1 = 100;
int const arr[3] = { 1,2,3 };
const int arr1[3] = { 1,2,3 };
1.2 const修饰指针
char *p = "hello";
const char *p = "hello";
char * const p = "hello";
const char * const p = "hello";
1.3 常量指针和指针常量
int num1 = 10;
int num2 = 20;
int num3 = 30;
int* p1 = &num1;
const int* p2 = &num2;
int* const p3 = &num3;
cout << num1 << " " << &num1 << endl;
cout << num2 << " " << &num2 << endl;
cout << num3 << " " << &num3 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p2 << " " << p2 << endl;
cout << *p3 << " " << p3 << endl << endl;
p2 = p1;
*p3 = 40;
cout << num1 << " " << &num1 << endl;
cout << num2 << " " << &num2 << endl;
cout << num3 << " " << &num3 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p2 << " " << p2 << endl;
cout << *p3 << " " << p3 << endl << endl;
1.4 两个const
int num1 = 10;
int num2 = 20;
int* p1 = &num1;
const int* p2 = &num2;
const int* const p4 = &num2;
cout << num1 << " " << &num1 << endl;
cout << num2 << " " << &num2 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p2 << " " << p2 << endl;
cout << *p4 << " " << p4 << endl << endl;
p2 = p1;
cout << num1 << " " << &num1 << endl;
cout << num2 << " " << &num2 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p2 << " " << p2 << endl;
cout << *p4 << " " << p4 << endl << endl;
num1 = 100;
num2 = 200;
cout << num1 << " " << &num1 << endl;
cout << num2 << " " << &num2 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p2 << " " << p2 << endl;
cout << *p4 << " " << p4 << endl << endl;
int num1 = 10;
int num3 = 30;
int* p1 = &num1;
int* const p3 = &num3;
const int* const p4 = &num3;
cout << num1 << " " << &num1 << endl;
cout << num3 << " " << &num3 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p3 << " " << p3 << endl;
cout << *p4 << " " << p4 << endl << endl;
*p3 = 35;
cout << num1 << " " << &num1 << endl;
cout << num3 << " " << &num3 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p3 << " " << p3 << endl;
cout << *p4 << " " << p4 << endl << endl;
num1 = 100;
num3 = 300;
cout << num1 << " " << &num1 << endl;
cout << num3 << " " << &num3 << endl;
cout << *p1 << " " << p1 << endl;
cout << *p3 << " " << p3 << endl;
cout << *p4 << " " << p4 << endl << endl;
参考资料:
C++ const的用法详解
C++中的const,位置很关键