C++笔记二 -- 常量

常量:值在运行时不变

C:#define定义宏常量

C++:可以用const定义常量

#define MAX 100    /* C 语言的宏常量 */ 
const int MAX = 100;    // C++ 语言的 const 

const和define区别:

const有数据类型,宏没有,编译器对const进行类型安全检查而只对宏常量进行字符替换

const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是像#define一样给出的是立即数。

const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。

const的用法:

如果参数为指针且仅做输入,则在类型前加const,如void strcopy(char *dest, const char *src);

如果参数是以值的方式传递,则可以用“const &”以省去临时对象的构造和析构过程

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

const数据不能在类的声明中被初始化,const只在某个对象生存期间是常量,对于整个类而言确是可变的,因为类可以创建多个对象,不同对象的const数据可以不同

因此在类中要用枚举常量实现恒定的常量,枚举常量不占用对象的存储空间,而是等到编译时才被全部求值。缺点是隐含数据类型为整数,不能表示浮点数。

例:

class A
{
    enum {SIZE1 = 100, SIZE2 = 200};
    int array[SIZE1];
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值