(1)const int a;
(2)int const a;
(3)const int *a;
(4)int * const a;
(5)int const * a const;
先看上面几个被const修饰的对象:
(1)表示不可改变的整型变量,也就是说欲阻止一个变量被改变,可以使用const关键字;在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了。
(2)的作用与(1)的一样,都表示a是一个常整型;
说(3)之前,先说一下指针的概念,指针就是指向数据存储位置的方向标。而指针本身的数据就是指向对象的地址。如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。再看(3)a代表的是指向整型数据的指针,则a指向的内容是不可以修改的。而指针a这个指针是可以修改的。
同理(3)的分析。(4)中,a是不可变的,a指向的内容是可变的。
最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的。
网友评论