A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、定义:const是一个类型修饰符;使用const修饰变量则可以让变量的值不能改变;
        常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被跟新的。
2、作用:
(1)可以定义const常量,具有不可变性;
(2)便于进行类型检查;
(3)可以避免模糊的数字出现,同样可以很方便的进行参数的调整和修改;
(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性;
(5)可以节省空间,避免不必要的内存分配。
         例如:
         #define PI 3.14159   //常量宏
         const double Pi=3.14159;  //此时并未将Pi放入ROM中
         double i=Pi;  //此时为Pi分配内存,以后不再分配i
         double I=PI;  //编译期间进行宏替换,分配内存
         double j=Pi;  //没有分配内存
         double j=PI;  //再进行宏替换,又一次分配内存
(6)提高了效率。编译器通常不为const常量分配存储空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率很高。
3、const使用的地方
1)修饰常量

2)修饰指针变量
      如:int a=2,b=20;
            const int *p=&a;//定义了指向常量的指针p,给指针p初始化
             p=&b; //重新改变了指针p的指向
             *p=100;//此操作是错误的
       由此可知,const型的指针变量p的指向可以改变,但是指向的变量的值是不能改变的。
       如:int a=2,b=20;
              int *const p=&a;//定义了常指针p,给指针p初始化
              p=&b; //重新改变了指针p的指向
              *p=100;//此操作是错误的
       由此可知,const修饰的指针变量,指针变量指向的变量值可以改变,但是指向不能改变。
      如:int a=2,b=20;
             const int * const p=&a;//定义了指向常量的常指针p
            由此可见,指向常量的常指针指向的变量值不可以改变,指向也不能改变。
记忆技巧:看const和*的位置,若const在*的左侧,此时表示指针变量指向的变量的值不能变,但是指向可以变;若const在*的右侧,此时表示指针变量指向的变量的值可以变,但是指向不可以变;若若const在*的两侧侧,此时表示指针变量指向的变量的值不可以变,指向也不可以变

3)修饰数组

1 个回复

倒序浏览
今天也刚刚看到这,复习一遍
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马