const用法

1、const修饰的是变量,而不是常量,只是被修饰后的变量成为了“只读变量”;

       如 const int Max = 100;

            int array[Max];

    这种定义在C语言编译会产生错误,而在C++扩展了const的含义,可以使用C++的作用域规则将其定义限定在特定的函数或文件中(作用域描述了名称在各种模块中的可知程度)。


2、#define也可以定义符号常量,为什么要推荐使用const了?

     a、const能够明确指定类型;

     b、可以使用C++的作用域规则将定义限定在特定的函数或文件中

     c、可以将const用于更复杂的类型


3、在C++中,const限定符对默认存储类型稍有影响。

      在默认情况下全局变量的链接性是外部的,但const全局变量的连接性为内部的。就是说,在C++看来,全局const定义就像使用了static说明符一样。

cons int fingers = 10; // same as static const int fingers;
int main(void)
{
    ....
}


4、const定义节省内存分配、提高了效率

    编译器通常不为普通const变量分配存储空间,而是将他们保存在符号表中,这使得他成为一个编译期间的值,没有了存储与读内存的操作,使得他的效率很高;const定义的只读变量在程序运行期间只有一个备份,而#define定义的宏常量在内存中有若干个备份,#define宏在预编译阶段进行替换,而const修饰的只读变量是在编译的时候确定其值。

#define M    3;

const  int N = 5;


int i = N;      //此时为N分配内存,以后不再分配

int I = M;      //预编译期间进行宏替换,分配内存

int j = N;      //没有分配内存

int J = M;     //在进行宏替换,又一次分配内存


4、通常只读变量的声明如下:

    const type name = value;//应该在声明中对const进行初始化,下面的代码风格可不好

    const int toes;

    toes = 10

如果在声明只读变量没有提供值,则该变量的值是不确定的,而且无法修改。    


5、const的一些用用法

   a、修饰一般变量

   b、修饰数组

   格式:int const  a[5] = {1, 2, 3, 4, 5};     或者   const int a[5] = {1, 2, 3, 4, 5};

   c、修饰指针

   d、修饰函数的参数

   e、修饰函数的返回值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值