从开始学C++开始,就被const搞晕了,不是难以理解,是真的很容易混淆。
首先const的作用很简单,就是将定义常量,也就是使其变为只读的。
当时当其与指针并到一起的时候,就各种麻烦了。
首先是简单的int const 和 const int
int const a=4;
const int b=3;
这两个作用是相通的,但是要注意在声明的时候就要初始化,因为声明之后就变成只读的了,就不能再对其进行赋值操作了
然后是 const int * 和 int const *
int x=1;
const int * a=&x;
int const *b=&x;
cout<<&x<<endl;
cout<<a<<endl;
cout<<b<<endl;
这两个const的作用也是相同的,都是直线x地址的指针,都是指明a指向的内容是一个常量,不能修改而其指向的地址可以修改。如进行如下操作,就会报错
int x=1;
int y=2;
const int * a=&x;
int const* b=&x;
*a=4;
b=&y;
cout<<&x<<endl;
cout<<a<<endl;
cout<<b<<end