关闭

const

标签: const
367人阅读 评论(0) 收藏 举报
分类:

1.修饰变量

指明变量值是不能被更新,引入的目的是为了取代预编译指令,可以节省空间,避免不必要的内存分配,但是必须被初始化,否则没有机会去初始化。

const int Max=100; int Array[Max];

  #define PI 3.14159 //常量宏 
  const double Pi=3.14159; //此时并未将Pi放入RAM中 ...... 
  double i=Pi; //此时为Pi分配内存,以后不再分配! 
  double I=PI; //编译期间进行宏替换,分配内存 
  double j=Pi; //没有内存分配 
  double J=PI; //再进行宏替换,又一次分配内存! 
  const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。 

2.指针

对指针来说,可以指定指针本身为 const,也可以指定指针所指的数据为const,或二者同时指定为 const

3.函数声明

在一个函数声明中,const 可以修饰形参,表明它是一个输入参数,在函 数内部不能改变其值

4.对于类的成员函数,若指定其为 const 类型,则表明其是一个常函数, 不能修改类的成员变量;
5)对于类的成员函数,有时候必须指定其返回值为 const 类型,以使得其 返回值不为“左值”。例如:
const classA operator*(const classA& a1,const classA& a2);
operator*的返回结果必须是一个 const 对象。如果不是,这样的变态代码 也不会编译出错

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:42613次
    • 积分:1285
    • 等级:
    • 排名:千里之外
    • 原创:93篇
    • 转载:11篇
    • 译文:0篇
    • 评论:0条