const 的用法

来源:互联网 发布:黑人 知乎 编辑:程序博客网 时间:2024/06/06 02:25

const 常类型是指使用类型修饰符 const 说明的类型,常类型的变量或对象的值是不能被更新的。

const 的使用:

1. 定义常量

  (1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。

           TYPE const ValueName = value;

           const TYPE ValueName = value;

           即常变量,只能读,没有写权限,不能作为左值被修改。

          (注:a. 数据类型对于 const 是透明的,例如 const int a = 100; 等同于 int const a = 100;

                     b. 常变量必须被初始化,例如 const int b;这个语句是错误的。)

  (2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义.

           extend const int ValueName = value;

2. 指针使用 const

  (1)指针本身是常量不可变

           (int*) const p; 

           const (int*) p;

  (2)指针所指向的内容是常量不可变

           const (int) *p; 

           (int) const *p;

  (3)两者都不可变

           const int* const p;

  (4)还有其中区别方法,沿着*号划一条线:

           如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;

           如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。


   例:

        a. const int *cp1 = &a;

            cp1 = &b;  //ok          *cp1 = 1000;  //error

        b. int const *cp2 = &a;       //等同于a

            cp2 = &b;  //ok          *cp2 = 1000;  //error

        c. int * const cp3 = &a;

            cp3 = &b;  //error          *cp3 = 1000;  //ok

        d. const int * const cp4 = &a;

            cp4 = &b;  //error          *cp4 = 1000;  //error 

原创粉丝点击